1.在本機下生成公鑰/私鑰對。
ssh-keygen -t rsa -p ''
-p表示密碼,-p '' 就表示空密碼,也可以不用-p引數,這樣就要三車回車,用-p就一次回車。
它在/home/yaoyao下生成.ssh目錄,.ssh下有id_rsa和id_rsa.pub。
2.將公鑰拷貝到目標主機
用ssh登入到目標主機,然後cd ~/.ssh目錄,如果目錄不存在,那麼要自己建立mkdir -p ~/.ssh。你今後要用哪個帳戶登入主機,就在哪個帳戶的home目錄下操作,如果要免登陸root,就要去/root下操作。使用~比較好,不用多想了
3.把本機下的id_rsa.pub複製到b機下,在b機的.ssh/authorized_keys檔案裡,我用scp複製。
scp .ssh/id_rsa.pub [email protected]:/root/.ssh/id_rsa.pub
[email protected]'s password:
id_rsa.pub 100% 223 0.2kb/s 00:00
由於還沒有免密碼登入的,所以要輸入密碼。
4.b機把從本機複製的id_rsa.pub重新命名為authorzied_keys。
mv id_rsa.pub authorized_keys
chmod 600 authorized_keys
authorized_keys的許可權要是600。
5.本機登入b機。
ssh 192.168.1.181
the authenticity of host '192.168.1.181 (192.168.1.181)' can't be established.
rsa key fingerprint is 00:a6:a8:87:eb:c7:40:10:39:cc:a0:eb:50:d9:6a:5b.
are you sure you want to continue connecting (yes/no)? yes
warning: permanently added '192.168.1.181' (rsa) to the list of known hosts.
last login: thu jul 3 09:53:18 2008 from yaoyao
第一次登入是時要你輸入yes。
現在a機可以無密碼登入b機了。
遠端登陸不要密碼,使用authorized_keys不生效的解決方法
配置使用者的公鑰登陸時,配置完authorized_keys居然一直不生效,於是google之,發現原來是因為.ssh目錄和下面檔案的許可權問題導致的,因為目錄的許可權已經超過了sshd的要求許可權。
如果希望ssh公鑰生效需滿足至少下面兩個條件:
1) .ssh目錄的許可權必須是700
2) .ssh/authorized_keys檔案許可權必須是600
設定別名登入
1.配置本地ssh config檔案。執行:
vim ~/.ssh/config
加入以下內容
hostcssor_server #別名,網域名稱縮寫
hostname
cssor.com #完整的網域名稱
user
cssor #登入該網域名稱使用的賬號名
preferredauthentications
publickey #有些情況或許需要加入此句,優先驗證型別ssh
identityfile
~/.ssh/id_rsa #私鑰檔案的路徑
2.然後ssh 別名 就可以登入目標伺服器了。
ssh 免密碼登入
ssh 無密碼登入要使用公鑰與私鑰。linux下可以用用ssh keygen生成公鑰 私鑰對,下面我以centos為例。有機器a 192.168.1.155 b 192.168.1.181 現想a通過ssh免密碼登入到b。1.在a機下生成公鑰 私鑰對。chenlb a ssh keygen t rs...
ssh 免密碼登入
ssh 免密碼登入 ssh 無密碼登入要使用公鑰與私鑰。linux下可以用用ssh keygen生成公鑰 私鑰對,下面我以centos為例。有機器a 192.168.1.155 b 192.168.1.181 現想a通過ssh免密碼登入到b。1.在a機下生成公鑰 私鑰對。chenlb a ssh k...
ssh免密碼登入
實現原理 主機a 產生公鑰和金鑰,將主機a的公鑰傳送到主機b 主機b 接收主機a傳送的公鑰 主機a ssh請求登入到主機b 主機b 傳送給主機a一串字元 主機a 收到主機b傳送的字元,使用金鑰進行加密,並傳送回到主機b 主機b 接收到主機a使用金鑰加密後的字元,使用主機a的公鑰執行一定演算法進行對比...