經常會通過ssh登錄遠程服務器,一種是通過密碼方式登錄,一種是通過公鑰登錄。
如何設置通過公鑰登錄服務器
1. 首先生成自己的公鑰和私鑰
ssh-keygen 命令用來生成公鑰和私鑰 -t 用來指定密鑰類型(dsa | ecdsa | ed25519 | rsa | rsa1) -p 用來指定密碼短語 -C 用來添加注釋 比如 ssh-keygen -t rsa -C "mykey"
此時,會在存放ssh秘鑰的地方生成兩個文件(不同系統,存放秘鑰的地方不同),“.pub”結尾的是公鑰,另一個是私鑰
2. 第二步,將公鑰部署到服務器
公鑰需要寫入到服務的 ~/.ssh/authorized_key文件中,這里我通過sftp將公鑰上傳到服務器,然后將文件內容寫入到 ~/.ssh/authorized_key文件中
上傳公鑰到服務器 sftp root@yourhost -p 22 put mykey.pub 將文件寫入authorized_keys中 cat mykey.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys
3. 設置服務器ssh的可以通過公鑰登錄
打開/etc/sshd_config文件,修改如下配置
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
4. 重啟ssh服務,就可以通過公鑰登錄了
sudo service ssh restart
ssh客戶端配置文件
當主機較多的時候,不方便記住所有的IP、用戶、端口以及密碼,為了解決這個問題我們可以使用一個ssh的配置文件來記錄這些服務器。
常用的配置
Host 主機別名
HostName 主機地址
User 登陸用戶名
Port 端口號
IdentityFile 私鑰路徑
在~/.ssh/目錄下創建一個config文件,在config中寫入相應的配置后就可以使用 ssh <主機別名> 直接連接服務器了