操作步骤(实验环境为centos7虚拟机和服务器一台)
1 软件安装
yum install openssh-server #非root的用户加sudo
2 生成公钥密钥对
ssh-keygen #一直回车,就会在家目录.ssh下出现公钥密钥对(/home/用户名/.ssh)
3 将公钥拷贝到需要连接的主机
ssh-copy-id 'user'@'ip/host'
user是登录目标机使用的用户名,ip/host是目标及的ip或者主机名(主机名需要在/etc/hosts文件中添加,为IP地址和主机名的对应) 。默认使用此命令,还可以使用普通的拷贝命令,此命令拷贝到目标主机后在.ssh目录下,名称为authorized_keys 。如果有多个那么会继续添加到这个文件下。
4 登录
使用ssh user@ip #登录目标主机,无需输入密码
基本原理
主机A连接主机B,主机B发送一个随机数到主机A,主机A收到随机数之后,使用密钥对随机数进行加密,然后将密文发送给主机B,主机B使用公钥进行解密,判断解密数据是否为发送出去的密钥。
注意事项
- 前期使用ssh的时候一直会报.ssh/config文件权限异常,将其改为0600后运行正常。
- 注意用户的.ssh文件夹权限为0700 所属的用户为要登录的用户。
- .ssh/authorized_keys文件的权限为0600 所属的用户为要登录的用户。
- /home/root(用户家目录,根据实际使用用户来进行修改)文件夹的权限为 700,即 显示的权限应该是 drwx------
- /home/root/.ssh文件夹的权限也为700
- /home/root/.ssh/authorized_keys 文件权限为600,即,显示的权限应该是 -rw-------
注意:不要让本用户组和其他组的人员具有写权限即可。