ssh 秘钥登录远程主机
1. 说明
1.1 场景: 在Windows下利用SecureCRT 登录阿里云服务器。
1.2 服务器:Ubuntu16.04,自带openssh-client软件,需要安装 openssh-server 软件。 可以查看版本
openssl version
OpenSSL 1.0.2g 1 Mar 2016
1.3 本博客不说明如何安装 openssl
1.4 利用 ssh 秘钥方式登录主机比密码方式登录是要安全的。
我们秘钥对方式登录,和我们日常生活的开锁比较类似。比如用锁锁住了自己的家,只有带钥匙的家人可以打开锁进入家。那么这里的“家”就相当于主机中自己账号的权利,“锁”相当于公钥,“钥匙”相当于私钥。“锁”只有一个,在“家”门上,“钥匙”在家人手里。也就是公钥(锁)在要登录的主机上面,私钥(钥匙)在家人手里。openssl 是用来检查你的钥匙和锁配对不配对的。
2. 配置说明
2.1 预备内容
你先得在主机上面有自己的“家”,也就是拥有自己的账号,使用useradd 指令创建。
我们假设你创建的用户为 test,个人目录为 /home/test
你要造一个地方来放你的锁,是 /home/test/.ssh 目录,权限 700(只能自己和神root读写,对吧)
下面创建一个文件 authorized_keys, 权限400(自己和神能读就好),后续在里面添加内容
2.2 产生秘钥对(置办锁和钥匙)
我们用RSA 加密方式来产生秘钥对,如下:
ssh-keygen -t rsa -b 2048
(-b 指明了 key有多少bit)
会出现以下内容:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/test/.ssh/id_rsa): -- 回车使用括号内路径
Enter passphrase (empty for no passphrase): -- 直接回车,没有密码
Enter same passphrase again:
Your identification has been saved in /home/test/.ssh/id_rsa.
Your public key has been saved in /home/test/.ssh/id_rsa.pub.
我们将公钥(锁)放到2.1 创建的/home/test/.ssh/authorized_keys 中
记得将私钥(钥匙)保存好.
2.3 检查其余配置
2.3.1 sshd_config是一个服务端的配置文件(即本机开启sshd服务的相关配置),而ssh_config则是一个客户端的配置文件.
sshd_config中
PubkeyAuthentication yes //将该项改为yes
2.3.2 防火墙中端口22是否打开
重启ssh服务: sudo service sshd restart
至此,利用SecureCRT就可远程,以账户test登录了.
其他:ssh默认端口为22, 可以通过 /etc/ssh/sshd_config 中的Port项修改.
通过本地终端ssh指令登录后,几分钟不操作就自动断开了,你需要修改本地/home/你的本地账号/.ssh/conf(没有就新建), 添加内容 ServerAliveInterval 60 表示保持60分钟.
3. 参考内容
3.1 linux配置ssh公钥认证
3.2 Ubuntu ssh wiki
3.3 阿里云ECS每天一件事D1:配置SSH
3.4 阿里云服务器ESC环境(二) - SSH安全配置