天天看點

小工具:ssh-copy-id

伺服器時常需要配置無密碼的登入方式,最一般的設定方式如下:

# ssh-keygen

# cat ~/.ssh/id_rsa.pub | ssh user@server "cat - >> ~/.ssh/authorized_keys"

其實這方法已經很簡單了,不過我總記不清如何正确拼寫authorized_keys這個檔案名。

還好Linux系統裡預設都包含一個名為ssh-copy-id的工具:

# type ssh-copy-id

ssh-copy-id is /usr/bin/ssh-copy-id

你用cat或者more指令看一下就知道ssh-copy-id本身其實就是一個shell腳本,用法很簡單:

# ssh-copy-id -i ~/.ssh/id_rsa.pub user@server

再也不用記如何拼寫authorized_keys這個檔案名了,是不是很爽,可惜别高興太早了,ssh-copy-id有一個很要命的問題,那就是預設它僅僅支援SSH運作在22端口的情況,不過實際上出于安全的需要,我們往往都會更改伺服器的SSH端口,比如說改成10022端口,這時候你運作ssh- copy-id就會報錯了,直接修改ssh-copy-id腳本當然可以修正這個問題,但是那樣顯得太生硬了,實際上還有更好的辦法:

# vi ~/.ssh/config

加上内容:

Host server

Hostname ip

Port 10022

你也可以單獨隻加入Port一行配置,那樣就是一個全局配置,儲存後再運作ssh-copy-id指令就不會報錯了。

補充:經網友提示,如果端口不是22,不修改config檔案,按如下方式也可以:

ssh-copy-id -i ~/.ssh/id_rsa.pub "-p 10022 user@server" 

本文轉自leonardos51CTO部落格,原文連結:http://blog.51cto.com/leomars/1206736 ,如需轉載請自行聯系原作者

繼續閱讀