ssh keygen 免輸入密碼

懶得打密碼, 以 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 的方式, 有下述幾種簡便的方法:

  1. cat .ssh/id_rsa.pub | ssh hostname 'cat >> .ssh/authorized_keys' # 缺點, 機器沒有 .ssh 目錄會有問題
  2. ssh-copy-id -i .ssh/id_rsa.pub hostname # 推薦
  3. ssh-copy-id -i hostname # 預設會用 .ssh/id_rsa.pub 或現在 ssh-agent 載入的 key

相關網頁


關於 Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
本篇發表於 My_Note。將永久鏈結加入書籤。

ssh keygen 免輸入密碼 有 15 則回應

  1. xyb 說道:

    不然id_rsa不小心被人偷了,可就欲哭??了。要想不?ssh反复?passphrase,可以用ssh-add,或者更方便的工具:Keychain。??的?明,我前一?子?好??一?,供?考:
    http://xyb.8800.org/2005/12/ssh.html

  2. Tsung 說道:

    非常感謝您的指導, 真是很棒的技巧. 感激不盡 m(_ _)m

  3. ie 說道:

    i want keygen of diner dash hometown hero

  4. Tsung 說道:

    @.@a..... 這....

  5. josh 說道:

    請問如果一般user的目錄下沒有.ssh資料夾,
    是要自己手動建立嗎?

  6. Tsung 說道:

    嗯, 手動建立即可, 不然用那個帳號 ssh localhost 一次, 應該都會自動建立出來~ 🙂

  7. 小蘇 說道:

    請問有ssh client可以主動乎較遠端主機跟他連線的軟體嗎?

  8. 小蘇 說道:

    恩..我好像把方向搞錯了。
    以前都是由client 要求連接SERVER 才會連接。現在換成SERVER 要求Client 來連接他,在雙方連接上以後,client 可以可以自動下指令,有辦法這樣嗎?
    舉個例子,假設我有一台集中控制的固定IP SERVER,我想要把在網際網路上的各個浮動IP的SERVER,用他們自己的SSH SERVER,主動要求中控的SSH Client連接,連接完成後自動下指令。

  9. Tsung 說道:

    我覺得... 你應該再仔細想清楚...
    因為你這個邏輯不太對. XD

  10. 小蘇 說道:

    tightVNC 有server要求client連接的功能。SSH 應該也會有類似的應用才對,這樣也可以解決遠端主機的SSH server在牆裡面的問題

  11. 高藥師 說道:

    這樣會影響到FTP的登入嗎?

  12. 通告: 免密碼登入ssh | Gary's ...murmur

發表迴響