有a和b兩台機器,現要將a機器的user1用戶添加到b機器的user2用戶信任列表裡,使a機器的user1用戶可以直接ssh到b機器的user2用戶
步驟:
1,進入a機器/home/user1/.ssh目錄(如果是root用戶,在/root/.ssh),如果沒有,執行mkdir -p /home/user1/.ssh,檢查該目錄下是否有一個id_rsa.pub文件,如果沒有,執行ssh-keygen -t rsa 命令,該目錄下會生成該文件.復制該文件的內容;
2,進入b機器/home/user2/.ssh目錄,如果沒有就創建,在該目錄下 執行 vi authorized_keys ,在最後一行將步驟1復制的內容粘貼到這裡,然後保存退出;
3,vi b機器的/etc/hosts.allow,加一行:sshd:[這裡為a機器的ip,如果為雙路,記得加兩個ip]
然後在a機器的user1目錄下執行: ssh user2@b,成功連接到b機器。
ssh信任關系,是指一台服務器上的一個用戶信任客戶端的一個用戶,允許這個用戶不輸入密碼登錄,另一個說法叫做public_key_auth。實際上就是證書信任。
首先,需要為被信任的用戶創建一個證書。運行下面的命令:
ssh-keygen -t rsa
將會在~/.ssh目錄下生成兩個文件,id_rsa和id_rsa.pub,分別是私鑰和公鑰。注意id_rsa文件的權限必須是600。
然後,到服務器用戶的~/.ssh目錄下,創建一個文件authorized_keys(如果已經有了,直接編輯),把id_rsa.pub裡的內容(只有一行文本)加到文件裡面保存。
好了,這樣在客戶端運行 ssh username@remotehost就可以不輸入密碼直接登錄了。
設置了信任關系以後,可以在shell腳本中下載遠程文件或在服務器上執行命令,不需要輸入密碼:
ssh username@remotehost << EOF
remote command...
EOF
sftp username@remotehost << EOF
get remotefile
EOF