懶得打密碼, 以 key 做認證登錄.
步驟如下:
- ssh-keygen -t rsa 或 ssh-keygen -d (dsa) => 產生出 id_rsa, id_rsa.pub
- scp id_rsa.pub server_hostname:~/.ssh/
- ssh server_hostname
- cat .ssh/id_rsa.pub >> .ssh/authorized_keys 即可
- 這樣子就可以 key 認證登入, 不需輸入密碼.
注意: gen 時會問 Enter passphrase (empty for no passphrase): # 此處直接 enter 跳過,下次才不會詢問password
簡單解說一下:
- id_rsa: private key
- id_rsa.pub: public key
將 public key(id_rsa.pub) 拷貝到遠端的電腦後, 加到那 user 的 .ssh/authorized_keys 中.
之後連線時, 就會用本機的 private key(id_rsa) 與遠端電腦的 public key(authorized_keys) 做認證, 確認完成就可以直接登入, 不需輸入帳號密碼, 而且也比較安全.
要關閉使用密碼登入, 只允許使用 Key 來做登入, 可修改此檔案的下述兩個參數: vim /etc/ssh/sshd_config
- PubkeyAuthentication yes
- PasswordAuthentication no
將 Key cp 並寫入 authorized_keys 的方式, 有下述幾種簡便的方法:
- cat .ssh/id_rsa.pub | ssh hostname 'cat >> .ssh/authorized_keys' # 缺點, 機器沒有 .ssh 目錄會有問題
- ssh-copy-id -i .ssh/id_rsa.pub hostname # 推薦
- ssh-copy-id -i hostname # 預設會用 .ssh/id_rsa.pub 或現在 ssh-agent 載入的 key
不然id_rsa不小心被人偷了,可就欲哭??了。要想不?ssh反复?passphrase,可以用ssh-add,或者更方便的工具:Keychain。??的?明,我前一?子?好??一?,供?考:
http://xyb.8800.org/2005/12/ssh.html
非常感謝您的指導, 真是很棒的技巧. 感激不盡 m(_ _)m
i want keygen of diner dash hometown hero
@.@a..... 這....
請問如果一般user的目錄下沒有.ssh資料夾,
是要自己手動建立嗎?
嗯, 手動建立即可, 不然用那個帳號 ssh localhost 一次, 應該都會自動建立出來~ 🙂
請問有ssh client可以主動乎較遠端主機跟他連線的軟體嗎?
DSH? http://plog.longwin.com.tw/news-application/2008/09/01/dsh-manage-machine-tool-2008
恩..我好像把方向搞錯了。
以前都是由client 要求連接SERVER 才會連接。現在換成SERVER 要求Client 來連接他,在雙方連接上以後,client 可以可以自動下指令,有辦法這樣嗎?
舉個例子,假設我有一台集中控制的固定IP SERVER,我想要把在網際網路上的各個浮動IP的SERVER,用他們自己的SSH SERVER,主動要求中控的SSH Client連接,連接完成後自動下指令。
我覺得... 你應該再仔細想清楚...
因為你這個邏輯不太對. XD
tightVNC 有server要求client連接的功能。SSH 應該也會有類似的應用才對,這樣也可以解決遠端主機的SSH server在牆裡面的問題
喔, 你要的是穿牆, 這個是 ssh -D 可以做到.
http://plog.longwin.com.tw/my_note-unix/2010/01/28/linux-ssh-socks-firefox-pidgin-2010
這樣會影響到FTP的登入嗎?
不會.
scp id_rsa.pub server_hostname:~/.ssh/
這樣會蓋掉server 上的 自己 public key
是否取另外檔案名稱比較好
public key scp 過去後,會需要另外 cat 全部放到 authorized_keys 裡面去,id_rsa.pub 就沒有用了,蓋掉沒關係 🙂