SSH免密登入雲伺服器記錄
生成SSH金鑰
首先檢查在主機的~/.ssh
目錄下檢視是否存在id_rsa
、id_rsa.pub
檔案,若沒有則採用下面的方法生成金鑰。(若重灌雲伺服器系統,則檢查在known_hosts
檔案中刪除對應ip相關的內容)
使用-t
引數建立一個指定金鑰的型別(rsa)並使用-C
引數添加註釋:
ssh-keygen -t rsa -C "[email protected]"
輸入後會有如下提示:
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
第一行是提醒我們正在生成一對金鑰;第二行則是讓我們選擇金鑰存放的檔案路徑,通常我們都會選擇使用預設路徑,此時不用輸入任何路徑,直接回車即可;回車後終端給出如下提示:
Enter passphrase (empty for no passphrase):
它提示我們輸入一串密碼短語,這裡不輸入任何值也不會影響生成結果,直接回車即可;回車後終端給出如下提示:
Enter same passphrase again:
這裡是讓我們再次輸入一遍密碼短語,免得我們在第一次輸入的時候誤操作。如果上一步沒有輸入值,那麼這裡也直接回車即可;回車後終端給出如下提示:
Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:/k7eBzEwIUHIjh0osGBEkoRMLKKbCV4XzyhHJ3ffsj0 [email protected] The key's randomart image is: +---[RSA 3072]----+ |%O o o+... | |O+. .++o oo | |= ..+O.. .o. | |o o.+oo oo. | |o+. + S +o | |+. . ..E | | . . .. | | + . . | | .+ .. | +----[SHA256]-----+
從提示中我們可以看到金鑰存放的檔案路徑,預設情況下公鑰和私鑰都存放在 ~/.ssh 目錄下。
配置免密登入
將把主機下的id_rsa.pub
複製到伺服器下,在伺服器的.ssh/authorized_keys
檔案裡。
推薦採用命令方式,手動複製貼上可能會有格式錯誤。
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
回車後輸入雲伺服器的密碼,會有類似如下提示:
~/.ssh » ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected] zhaowenxu@SINO-Mac /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/Users/zhaowenxu/.ssh/id_rsa.pub" /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys Password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh '[email protected]'" and check to make sure that only the key(s) you wanted were added.
此時便可以免密登入雲伺服器檢視(若為第一次登入輸入yes)
若經過上述配置依然需要輸入密碼。則檢查下述內容:
注意一:
- CentOS預設公鑰登陸關閉狀態需要開啟
- 修改配置檔案:/etc/ssh/sshd_conf
命令:vim /etc/ssh/sshd_conf
- 找到下面兩行註釋將前面的#去掉並將後面的no改為yes
RSAAuthentication yes PubkeyAuthentication yes
- 重啟sshd服務:
systemctl restart sshd
免使用者名稱和ip登入
雖然我們省去了輸入密碼的步驟,不過使用者名稱和 IP 地址也不短。如果想要省略使用者名稱和 IP 地址,可以通過配置~/.ssh/config
實現。預設情況下~/.ssh
目錄下是沒有config
檔案的。我們可以通過$ vim ~/.ssh/config
建立。接著寫入以下配置資訊:
Host Sino
HostName 11.11.11.11
Port 22
User root
IdentityFile ~/.ssh/id_rsa
其中Host
代表雲伺服器暱稱、HostName
為雲伺服器的公網 IP 地址、Port
代表連線時使用的埠號、User
代表連線時選用的使用者名稱、IdentityFile
代表本地私鑰檔案的路徑。配置完成後退出編輯器,這時候我們就可以用雲伺服器暱稱登入雲伺服器啦,在終端輸入$ ssh Sino
即可。