由于经常需要登录一些远程的服务器,每次都需要将密码重输一遍,如下:

格式: #ssh 用户名@服务器IP

示例: #ssh mimvp@123.57.78.100

mimvp@123.57.78.100's password: (这里需要手动输入密码后回车

 

想偷懒,不手动输入密码,怎么办?

方法一、密钥验证

密钥验证安全许多,配置也简单,支持ssh、scp、sftp等登录都免去了输入密码的麻烦,推荐使用。

1. 生成密匙

# cd ~/.ssh/
# ssh-keygen -t rsa

// 一路回车在当前用户的根目录下的.ssh目录生成id_rsa.pub公钥

生成了公钥和私钥

-rw-------  1 homer homer 1679 Nov 16 11:48 id_rsa
-rw-r--r--  1 homer homer  394 Nov 16 11:48 id_rsa.pub

2. 将公钥拷贝到服务器上

# scp ~/.ssh/id_rsa.pub mimvp@123.57.78.100:~/.ssh/authorized_keys

// 将本地生成的公钥拷贝到远程服务器的下并改名为authorized_keys

这样就大功告成了!

# ssh mimvp@123.57.78.100                  

// 不用再手动输入密码

通过ssh登录、通过scp或者sftp传输文件,不用再输入密码了!

 

方法二、安装sshpass

sudo apt-get install sshpass

安装完成后使用sshpass允许你用 -p 参数指定明文密码,然后直接登录远程服务器。例如:

格式: sshpass -p '密码' ssh 用户名@服务器IP

示例: sshpass -p 123456 ssh mimvp@123.57.78.100

-p 指定密码,后面跟上标准的 ssh 连接命令