1. 程式人生 > 其它 >設定SSH別名免密登入伺服器

設定SSH別名免密登入伺服器

最原始的SSH登入伺服器的方式如下:

$ ssh username@ip
username@ip's password: $ *******
Login successfully.

SSH金鑰登入安全性非常高。
別名登入將每個伺服器的登入資訊記錄在配置檔案config中,使得只需要輸入別名即可登入。
為簡化登入流程,採取別名+免密配置,在本地主機上生成了私鑰與公鑰後,再將公鑰複製到多個伺服器中,每個伺服器將公鑰加入授權金鑰,則可實現免密登入多個伺服器。

一、設定別名

為了偷懶[狗頭]
用一個別名來替代 'username@ip'

  1. 開啟ssh配置檔案~/.ssh/config
  • windows: 文字文件開啟or 終端 notepad ~/.ssh/config
  • mac/linux: vim ~/.ssh/config
  1. 修改ssh配置檔案
    Host Nickname  # 別名
    HostName ip  # ip或網址,指向伺服器
    Port 22  # 預設22
    User username  # 設定使用者名稱
    

二、免密登入(金鑰登入)

金鑰登入指的是,

  1. 生成金鑰對
    (Local):~ $ cd ~/.ssh
    (Local):~/.ssh $ ssh-keygen -b 4096 -t rsa -C  custom_comment
    

修改custom_comment為自己定義,會顯示在公鑰中。
值得注意的是,私鑰只有一個,所以以上操作會覆蓋原有的公私鑰。

  1. 將生成的公鑰(*.pub)複製到遠端伺服器的.ssh資料夾中(username是管理員賦予你的賬戶名,ip為伺服器的ipv4地址,複製的檔名可自定義)

    (Local):~/.ssh $ scp id_rsa.pub username@ip:~/.ssh/pub_key.pub
    Are you sure you want to continue connecting (yes/no)? $ yes
    [email protected]'s password: ***********
    id_rsa.pub                                      100%
    
  2. ssh登入遠端伺服器後,將公鑰新增入authorized_keys(若不存在則新建)(touch命令,如其名,存在則無操作,不存在則新建檔案)