ssh登入的除錯方法和常見問題

2021-09-20 03:16:55 字數 1686 閱讀 3279

ssh登入伺服器是程式猿日常生活必不可少的一部分,也時不時的會遇到自己配置ssh登入的問題,拿日常使用的git來講,不管使用github也好,還是自己搭建的gitlab等等,如果不能很好的理解ssh的原理,極容易遇到各種問題。這篇文章就嘗試向大家簡單講解下ssh的原理、除錯方式和常見問題。這裡要講的主要是免密碼登入,也就是使用金鑰登入的方式。

總結下來,ssh金鑰登入就下面3個步驟:

生成金鑰對,執行如下命令,回車,可以自定義金鑰名字,比如mykey,後面你會得到mykey和mykey.pub,前者是私鑰(鑰匙),後者是公鑰(鎖)。

ssh-keygen -t rsa

將公鑰交給伺服器。你肯定是把鎖給伺服器,如果你把鑰匙給伺服器,是不是不太對??好多新手在這個問題上都會犯糊塗。這一步只要確保伺服器端~/.ssh/authorized_key中有這個公鑰就可以了,設定方式多樣,不細說。

在本地配置伺服器和金鑰繫結,配置檔案為~/.ssh/config中,如下:

host github.com

identityfile ~/.ssh/mykey

user git

當然你也可以在命令列指定使用哪個金鑰,但這不是麻煩一些嗎?!

ssh -i [path to private key] [email protected]
接下來,你應可以使用金鑰登入伺服器,如果還不行,你得看看下面的除錯**了。

發話不多說,直接上**。

客戶端除錯

ssh -vvv [email protected]
是不是有一堆除錯資訊輸出?!快去看看連線時候用的私鑰對不對!

服務端除錯

/usr/sbin/sshd -d -p 2222
在客戶端去連線這個新埠

ssh -vvv host -p 2222

此時兩邊都有日誌輸出,啥問題都能看到了!!

其實有了上面的除錯**,所有問題都能迎刃而解了,這裡只記錄下我碰到的乙個問題。

為新同事建立乙個伺服器登入帳號,使用如下命令:

useradd -d /home/test test
然後將其公鑰放進/home/test/.ssh/authorized_keys中,之後test使用者卻無法登入伺服器。

首先,使用客戶端除錯**,任何異常都沒有發現,使用的私鑰也是正確的,但是卻無法連線。

接下來就服務端除錯**,發現異常,說是test使用者不可用,處於鎖定狀態。

問題找到,原來直接建立使用者後,如果不給它設定密碼,使用者就是鎖定狀態,無法使用。使用者狀態可以通過以下命令檢視。

passwd -s test # 檢視使用者狀態

passwd -l test # 鎖定使用者

passwd -u test # 啟用使用者

出了問題不可怕,可怕的是沒有定位問題的方法,想想馬航搜救,東一頭西一頭,好可怕哦~

以後ssh登入遇到問題可以自己解決了吧?!不用謝!

ssh原理與運用

kali linux 登入ssh服務常見問題

二 伺服器傳送了乙個意外的資料報 三 ssh伺服器拒絕了密碼 ssh 為secure shell的縮寫,由ietf的網路小組 network working group 所制定,ssh為建立在應用層基礎上的安全協議。ssh是較為可靠,專為遠端登入會話和其他網路服務提供安全的協議。利用ssh協議可以有...

SQL SQL Server登入常見問題

很多人sql裝的很不規範,導致各種問題或者說時間長了,密碼給忘記了,怎麼辦呢?重灌?2 再看看你windows身份驗證可不可以登入 不可以的話。大哥重灌吧,我沒辦法了 服務開的情況下 首先確保你服務開了再試 3 試試你sql server身份驗證可不可以登入 如果可以的話還看什麼,直接飄過了 你軟體...

SQL SQL Server登入常見問題

很多人sql裝的很不規範,導致各種問題或者說時間長了,密碼給忘記了,怎麼辦呢?重灌?2 再看看你windows身份驗證可不可以登入 不可以的話。大哥重灌吧,我沒辦法了 服務開的情況下 首先確保你服務開了再試 3 試試你sql server身份驗證可不可以登入 如果可以的話還看什麼,直接飄過了 你軟體...