almost 8 years ago

SSH

平常用 ssh 登入主機時,都是以打密碼的方式進行驗證

還有另一個驗證的方法,就是用 public key 跟 private key 來驗證

ssh-keygen 可以產生的 key 有三種

rsa1, rsa2, dsa

這邊以 rsa2 為例

ssh-keygen

openSSH 本身就有包含 ssh-keygen 這個產生 key 的工具

$ ssh-keygen -t rsa

ssh-keygen 會跑出以下訊息:

Generating public/private rsa key pair.

Enter file in which to save the key (/home/nyo/.ssh/id_rsa):

# 設定存放 key 的位置,按 enter 使用預設值

Enter passphrase (empty for no passphrase):

# 輸入 passpharse,想要不打密碼就登入的話,就讓它空白;或是打上 passpharse 之後再交由 ssh-agent 或任何 key 管理系統保管

Enter same passphrase again:

Your identification has been saved in /home/user/.ssh/id_rsa.

Your public key has been saved in /home/user/.ssh/id_rsa.pub.

The key fingerprint is:

XX:XX:18:XX:19:XX:XX:XX:XX:XX:13:XX:XX:05:XX:XX user@Ubuntu

現在在 ~/.ssh/ 裡我們有一把 public key (id_rsa.pub) 跟一把 private key (id_rsa)

只要把這兩隻 key 保管好,把 public key 放到你要連線的主機就可以了!

把 public key 放到你要連線的主機

$ scp ~/.ssh/id_rsa.pub username@server:~/

連到該主機上,這時你還是只能用打密碼的方式登入

$ ssh username@server

將 public key 加到系統預設放 public key 的地方:authorized_keys

$ cat id_rsa.pub >> ~/.ssh/authorized_keys

設定完成,你再次登入該主機就是以 key authentication

如果你沒打 passphrase 就可以直接登入

有打 passphrase 就打 passphrase

之後如果還要連到其他的主機,只要再將原本的 public key 送到該主機的 authorized_keys 就可以了

SSH 免密碼登入 - JosephJ

ssh keygen 免輸入密碼 - Tsung

← [BH] 文章更新時間 [Linux] netstat 查看網路連線的好工具 →
 
comments powered by Disqus