例子一
1、建立公開金鑰、公開金鑰
ssh-keygen -t rsa
把公開金鑰複製到遠程主機
無視它出來的任何提示,歡快的一路斷行符號到底吧。
2、把公開金鑰 id_rsa.pub 複製到遠程機器的 /home/username/.ssh目錄 並命名為 authorized_keys
方法1: 一步到位:scp ~/.ssh/id_rsa.pub username@hostname:~/.ssh/authorized_keys
方法2: 複製 scp ~/.ssh/id_rsa.pub username@hostname:~
登陸 ssh username@hostname
追加 cat id_rsa.pub >> .ssh/authorized_keys
各種手段,隨你開心,反正複製過去就成~多台遠程主機就多次複製~ 如果你本機登陸使用者和遠程登陸使用者一致的話,就可以直接 ssh hostname直接登陸,下面就不用看了。
3、解決本地登陸使用者與遠程登陸使用者不一致
好吧,這事很糾結,雖然不用輸入密碼了,但是還得 ssh username@hostname 來登陸,很不爽,你懂的。 其實解決也很簡單(but是同事告訴我的,老臉一紅),修改本地登陸使用者的 ~/.ssh/config 檔案,如果木有的話就自個兒建一個吧,內容如下:
Host hostname
user username
Host hostname2
user username2
這樣,本地和遠程登陸使用者名稱不一致也可以 ssh hostname 登陸了。
例子二
在A 上運行命令:
# ssh-keygen -t rsa (連續三次斷行符號,即在本地產生了公開金鑰和私密金鑰,不設定密碼)
# ssh root@192.168.1.10 "mkdir .ssh" (在1.10上建立.ssh目錄,需要輸入密碼)
# scp ~/.ssh/id_rsa.pub root@192.168.1.10:.ssh/id_rsa.pub (需要輸入密碼)
在B 上的命令:
# touch /root/.ssh/authorized_keys (如果已經存在這個檔案, 跳過這條)
# cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys ( 將id_rsa.pub 的內容追加到
authorized_keys 中)
回到A 機器:
# ssh root@192.168.1.10 (不要求輸入密碼, 登入成功)
在B機器上做RSYNC同步就不用在輸入密碼或者使用密碼檔案了。
rsync -avzu --progress --delete root@192.168.1.9:/var/www/ /var/www (192.168.1.10用戶端執行)