1. 生成密钥对文件
[root@centos2 ~]# ssh-keygen -t rsa -b 2048 -t 指定加密类型 -b 指定密钥对加密长度
询问1:执行过程中会询问保存位置,一般默认保存在当前用户家目录下的.ssh/目录下
询问2:是否对密钥文件进行加密
加密:若加密,则在调用密钥文件时需要先验证密钥的密码,密码正确才能使用密钥文件
不加密:若不加密,则密钥文件可以直接被调用,整个登录验证过程无需输入任何密码,即为免密登录
2. 将公钥上传至目标服务器
[root@centos2 ~]# ssh-copy-id [email protected]
3. 登录
[root@centos2 ~]# ssh [email protected]
4. 一些优化
4.1 禁止使用密码登陆
配置文件:/etc/ssh/sshd_config
选项:
PasswordAuthentication no
注意:ssh的配置文件中,并不是注释掉的就是不生效的,有些是默认的,需要修改时必须取消注释
4.2 禁止使用root远程登录
配置文件:/etc/ssh/sshd_config
选项:
PermitRootLogin no
4.3 修改默认端口、限制ssh监听IP
修改默认端口:ssh 作为一个用来远程管理服务器的工具,需要特别的安全,默认情况下使用TCP的22端口,若不进行修改,很容易被利用遭到攻击,所以我们一般都会修改端口,尽量修改一个高位端口(范围1-65535)
配置文件:/etc/ssh/sshd_config
选项:
Port 25535
ssh -p 25535 [email protected]
限制ssh监听IP:有些服务器则安全级别更高一些,不允许使用外网直接登录,只有通过局域网才能登录,我们可以在机房里设置其中一台能够被外网远程连接,其他的主机都通过这个机器进行远程连接即可
配置文件:/etc/ssh/sshd_config
选项:
ListenAddress 192.168.80.128