两台虚拟机:ip:192.168.60.2,192.168.60.3
系统:centos7
前提(关闭防火墙或在防火墙中打开端口22)
准备
1、首先安装查看是否安装有ssh
rpm -qa | grep ssh
1
在这里插入图片描述
看到上图所示 ,表示已经安装(未安装 )
yum install -y openssl openssh-server
1
2、安装成功,启动ssh
systemctl start sshd.service
1
3、设置ssh开机自启动:
systemctl enable sshd.service
1
快速实现免密:
前提:两台机器用户名相同
1、生成密钥对
ssh-keygen -t rsa
1
出现 Enter file in which to save the key (/root/.ssh/id_rsa): 后,直接enter
出现Enter passphrase (empty for no passphrase): 继续enter
在这里插入图片描述
出现上图页面,生成秘钥成功
2、使用ssh-copy-id
ssh-copy-id -i .ssh/id_rsa.pub 目标机器
或者 ssh-copy-id 目标机器
1
2
手动实现免密登录
1、首先在本机当前用户目录下生成密钥对
ssh-keygen -t rsa
1
2、此时在当前用户目录下回生成.ssh文件夹 查看
ll -a #查看全部文件 .ssh为隐藏文件
1
在这里插入图片描述
3、进入.ssh目录 cd .ssh 此时可以看到两个文件 公钥和私钥
在这里插入图片描述
4、创建文件authorized_keys并修改权限(注:文件权限必须是600,否则无效)
touch authorized_keys
chmod 600 authorized_keys
1
2
5、将自己的公钥放进authorized_keys实现自登陆免密
cat id_rsa.pub >> authorized_keys
1
6、复制本地公钥到另一台机器的用户目录下
scp id_rsa.pub 192.168.60.3:/home/centos01/
1
此时需要输入密码
7、成功之后,登录192.168.60.3,将该公钥加入本机器的authorized_keys(默认本机器已完成上述步骤)
cat id_rsa.pub >> .ssh/authorized_keys
1
至此,192.168.60.2–>192.168.60.3免密登录完成
途中可能遇到问题:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password)
1
这是因为两台机器的用户名不同,普通用户的时候文件权限有问题
我的解决方式是将两台机器改成相同用户名
root用户登录
vi /etc/passwd 找到原先的用户名,将其改为自己的用户名,但是/home/“原先用户名” 中的不能更改,若更改重启后,便登陆不了系统了。
vi /etc/shadow 找到原先用户名,改为自己的用户名
1
2
以上步骤完毕后,sudo reboot重启