背景:centos7或者ubuntu、OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013、xshell5
一、修改端口号
nmap、钟馗之眼等一些扫描工具会扫描一些常见端口,sshd的22端口必定也在其中
修改/etc/ssh/sshd_config,把 Port 22 修改成你喜欢的端口号,最好是>10000,但是要<65535
二、使用证书登录
1. 生成密钥,我这里用的是xshell 5
类型选择RSA,长度自己喜欢
这里可以选择保存为文件,然后使用winscp上传到服务器,然后拷贝内容到(你要登录的用户的home目录)/.ssh/authorized_keys
如:cat id_rsa_2048.pub >>/home/(你要登录的用户用户名)/.ssh/authorized_keys
(推荐)或者直接拷贝公钥到/home/(你要登录的用户用户名)/.ssh/authorized_keys,没有.ssh文件夹和authorized_keys就自己新建一个,不过要注意文件所属者
1.1.(推荐)或者使用ssh-keygen 生成密钥
选项
- -t #密钥类型,dsa | ecdsa | ed25519 | rsa | rsa1
- -b bits #密钥长度 1024 | 2048 |4096 | 8192,默认2048
例:ssh-keygen -t rsa -b 4096
然后可以在/home/(user)/.ssh/ 目录中找到一对密钥id_rsa是私钥, id_rsa.pub是公钥,然后把公钥复制到authorized_keys,私钥自己留着
ok!到这里我们就得到一对密钥了,一个是公钥(已经拷贝到服务器上了),一个是私钥,在xshell5上(在工具->用户密钥管理者可以看到),私钥要导出来,然后随身携带,否者就无法登录自己的服务器了
2.修改/etc/ssh/sshd_config,修改以下几个选项
- PermitRootLogin no #不允许root登录
- StrictModes no #解决Authentication refused: bad ownership or modes for file /home/---/.ssh/authorized_keys的问题
- RSAAuthentication yes #开启RSA类型认证
- AuthorizedKeysFile .ssh/authorized_keys #认证密钥文件位置
- PasswordAuthentication no #不允许直接密码登录(有了证书登录,就不用密码登录了)
3.登陆服务器
service sshd restart
尝试登录: