Gitlab添加ssh-key報500錯誤
一、查看日志
發(fā)現(xiàn)Errno::Enoent(No such file or derectory -ssh):
root@asu1:/home/caixin# tail -f /var/log/gitlab/gitlab-rails/production.log
二、分析
根據(jù)日志提示,好像是缺少文件或目錄,后面有個ssh,難首是依賴ssh有問題?
根據(jù)下面報的文檔:popen.rb,key_fingerprint.rb等等,查看這些文件內(nèi)容,看能否找到原因
root@asu1:/home/caixin# find /opt/gitlab/ -name popen.rb
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/popen.rb
/opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/gitlab_git-10.7.0/lib/gitlab_git/popen.rb
root@asu1:/home/caixin# vim /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/popen.rb
popen.rb這個文件沒有幫助,進入這些文件目錄
root@asu1:/home/caixin# cd /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/
感覺和ssh有關(guān),grep找一找哪些文件有ssh
root@asu1:/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab# grep 'ssh' ./*rb
./identifier.rb: # git push over ssh
./identifier.rb: identify_using_ssh_key(identifier)
./identifier.rb: def identify_using_ssh_key(identifier)
./identifier.rb: identify_with_cache(:ssh_key, key_id) do
./identifier.rb: User.find_by_ssh_key_id(key_id)
./identifier.rb: ssh_key: {}
./key_fingerprint.rb: cmd.push('ssh-keygen')
./key_fingerprint.rb: version_output, version_status = popen(%w(ssh -V))
./url_sanitizer.rb: regexp = URI::Parser.new.make_regexp(['http', 'https', 'ssh', 'git'])
root@asu1:/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab#
發(fā)現(xiàn)有一個ssh -v,可能問題在這里,打開個文件看看,原因需要通過Ssh -v來執(zhí)行文章來源:http://www.zghlxwxcb.cn/news/detail-804966.html
root@asu1:/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab# vim key_fingerprint.rb
單獨執(zhí)行一下ssh -v看看,發(fā)現(xiàn)執(zhí)行不了,報錯了,原因找到了。繼續(xù)查找發(fā)現(xiàn)ssh文件都不存在,丟失了,原來問題出現(xiàn)在這里。服務(wù)器曾經(jīng)出現(xiàn)文件系統(tǒng)損壞,導(dǎo)致無法進入linux,最后通過fsck修復(fù)了linux,有可能在這個步驟把ssh相關(guān)文件弄丟了。
那就安裝一下openssh-client吧,結(jié)果發(fā)現(xiàn)也安裝不了。如果刪除重新安裝,發(fā)現(xiàn)刪除的時候會把git等相關(guān)依賴都刪除,這樣操作就弄大了,不能安裝,也不能刪除,只能看看如何修復(fù)。
三、解決:
由于是vm虛擬機,先做個快照,再把虛擬機還原到以前的快照,找到ssh相關(guān)文件,把/usr/bin/下的ssh相關(guān)所有文件都拷貝出來,然后虛擬機再還原來回來,把拷貝出來的文件按相同路徑拷貝過去,
切記要把拷貝進來的文件授權(quán),加上可執(zhí)行權(quán)限。這樣問題就解決了。文章來源地址http://www.zghlxwxcb.cn/news/detail-804966.html
到了這里,關(guān)于Gitlab添加ssh-key報500錯誤處理的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!