Linux设置SSH登录(SecureCrt)
背景
每次登录需要输入复杂的密码,而且不停的有人在尝试登录root账户。感觉心慌慌,所以不得不设置更加安全的登录方式。
配置SSH无密码登录需要4步
- 准备工作
- 生成公钥和私钥
- 导入公钥到认证文件,更改权限
- 测试
1. 准备工作
确认本机sshd的配置文件(需要root权限)
vi /etc/ssh/sshd_config
1)修改以下内容
RSAAuthentication yes #设置开启使用RSA算法的基于rhosts的安全验证;如RSAAuthentication没有则自行添加。
PubkeyAuthentication yes #设置开启公钥验证;
AuthorizedKeysFile .ssh/authorized_keys #后面的目录,是你上传的公钥所保存的文件;
StrictModes no #意思是设置关闭ssh在接收登录请求之前先检查用户家目录和rhosts文件的权限和所有权。
PasswordAuthentication no #禁止使用密码验证登录
UseDNS=no #加速SSH登录
2)先别急着重启sshd服务
先导自己需要的密钥在重启服务,不然你懂的远程不要想登陆了。
2. 生成公钥和私钥
生成公钥有三种方法:
1)使用命令
cd /root/.ssh ssh-keygen -t rsa
这个我没测试过
2)使用SecureCrt生成密钥并上传
工具Tools-创建公钥Create Public Key
KeyType:RSA
设置公钥的密码,密码用于以后登录时使用。也可以不输入密码
设置公钥长度:这里用默认的2048就行了
设置公钥的文件名,这里设置的id_rsa
生成后会得到以下两个文件,其中.pub后缀时公钥,无后缀的文件时私钥(xftp用)
3. 导入公钥到服务器,更改权限
1)我们复制一个公钥文件[id_rsa.pub]命名为[authorized_keys].
2)将[authorized_keys]用xftp等上传到 /root/.ssh/ 下覆盖原文件即可。
3)在服务器上更改文件权限
chmod 700 /root/.ssh chmod 600 /root/.ssh/authorized_keys
4)重启ssh服务
#CentOS 7之前的版本请执行:
service sshd restart
#CentOS 7请执行:
systemctl restart sshd.service
4. 测试使用SecureCrt登录
Secure进入管理密钥菜单,添加之前创建的私钥文件,输入密码。
尝试登录,登陆成功。
如果不能登录成功,那一定是SELinux惹的祸。
ps为了这个我弄了好长时间,入门难!
我们可以尝试关闭SELinux
暂时关闭(重启后恢复):
setenforce 0
永久关闭(需要重启):
vi /etc/selinux/config SELINUX=disabled