如果使用Linux服务器进行远程编程,每次SSH登录时都要输入密码过于繁琐。我们可以使用SSH Key来实现SSH无密码登录。
1 在本地机器上生成私钥和公钥打开终端,使用下面的命令生私钥和公钥:
# 生成私钥和公钥(使用rsa加密) $ ssh-keygen -t rsa
生成秘钥的过程中会要求你指定一个文件来保存密钥,按Enter键使用默认的文件就行了。然后需要输入一个密码来加密你的秘钥。
Generating public/private rsa key pair. Enter file in which to save the key (/home/zhiming/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/zhiming/.ssh/id_rsa. Your public key has been saved in /home/zhiming/.ssh/id_rsa.pub. The key fingerprint is: SHA256:IAdRlS4pO0ScCEWvMrl9HmqKee0H4Ir+I7B4/jGqub0 zhiming@linux01 The key's randomart image is: +---[RSA 2048]----+ |.+ooo+.... | | ..+. . | | .o oo | | ...ooo.. | |+..o o .S | |.=. + | |=o..=o | |*=+*.+. | |OXE==. | +----[SHA256]-----+
生成的秘钥可以在下面的位置看到:
# 私钥文件默认地址 ~/.ssh/id_rsa # 公钥文件默认地址 ~/.ssh/id_rsa.pub2将SSH公钥上传到Linux服务器
使用下面命令来上传:
$ ssh-copy-id username@remote-server
输入远程用户的密码后,公钥就会自动上传了。
# 公钥保存在远程服务器的地址 ~/.ssh/authorized_keys
上传完成后,SSH登录就不需要再次输入密码了。
使用scp命令来传送文件时也不需要输入密码。



