目的:A主机想要无需输入密码连接B主机
分下面三步:
(1)在A本机生成公钥与私钥
cd .ssh
ssh-keygen -t rsa
此时在.ssh目录下生成了id_rsa和id_rsa.pub。其中id_rsa是私钥,本机要用;id_rsa.pub是公钥
(2)将A公钥上传到远程主机B上
ssh-copy-id -i id_rsa.pub root@192.168.209.130 #把公钥信息写到远程主机的authorized_keys中
(3)连接远程主机B
ssh 192.168.209.130 (成功)
在A主机上面.ssh目录中,会有三个文件
ls /root/.ssh
authorized_keys id_rsa id_rsa.pub known_hosts
认证的主机 私钥 公钥 已经找到可以连接的主机
二、详细过程
A发送请求(+公钥)---->B(公钥对比,随机生成挑战码)(公钥对挑战码加密)---->A(用私钥解密)(明文发送)---->B(挑战码对比)
三、问题
问题1:-bash: ssh: command not found
安装软件:
yum -y install openssh-clients
问题2:没有.ssh目录
先用root连接另一台主机
问题3:如果ssh的端口不是22,可用下面命令
ssh-copy-id -i ~/.ssh/id_rsa.pub "-p 23 root@192.168.209.130"
四、配置文件
修改ssh的端口号:
vi /etc/ssh/ssh_config (客户端文件)
vi /etc/ssh/sshd_config (服务端文件)
/etc/ssh/sshd_config配置文件
PermitRootLogin yes #PermitRootLogin用来设置能不能直接以超级用户ssh登录,修改为no
PasswordAuthentication yes #PasswordAuthentication用来设置是否开启密码验证机制,如果用密码登录系统,则设置yes
PermitEmptyPasswords no #PermitEmptyPasswords用来设置是否允许用口令为空的账号登录系统,设置no
UseDNS yes #UseDNS是否使用dns反向解析