天天看点

Windows ssh免密登陆Linux配置过程ssh免密登陆Linux

ssh免密登陆Linux

1、生成公钥和私钥

公钥私钥理论上可以在服务器生成,也可以在Client端生成,以下为在Windows端生成,Windows系统为Client端。服务器端采用Centos8。

ssh-keygen -t rsa

不指定文件名,生成两个文件,id_rsa和id_rsa.pub

id_rsa为私钥

id_rsa.pub为公钥

2、上传公钥

将id_rsa.pub上传到Linux服务器

通过命令:cat id_rsa.pub >> authorized_keys,加载到authorized_keys文件中。

authorized_keys文件默认在/root/.ssh目录下。

编辑/etc/ssh/sshd_config文件

PermitRootLogin yes

PermitEmptyPasswords yes

PasswordAuthentication yes

保存后,重启ssh服务

systemctl restart sshd.service

3、客户端ssh命令行连接服务器

ssh -i id_rsa [email protected]

4、通过SecureCRT连接Linux

点Option->Session Options

在Connetion下SSH2配置项下

Authentication下,勾选PublicKey,点右边的Properties;

在弹出的Public Key Properties中,根据需要选择当前会话或全局会话(作用域不同)如只用于连接特定服务器;

选择Use session public key setting

Session settings选Use identity or certificate file,输入id_rsa路径,或通过文件选择框选中刚刚生成的私钥。

点OK退出Public Key Properties。

完善Session Options其它设置,如Hostname(填服务器IP)、Port(ssh默认22)、Firewall(None)、Username(Linux服务器用户名,本例为root)。点OK保存。

至此可免密通过SecureCRT连接Linux。

5、小插曲

在centos8上,通过命令ssh-keygen -t rsa生成的私钥,在SecureCRT提示无法找到对应的公钥(public key)。经过一番折腾,发现Centos8不加-b(私钥位数,有文档说64的倍数,有说1024的位数),默认生成的是3072位的密钥,而本机的SecureCRT只支持512到2048位的密钥。

在Centos8下用ssh-keygen -b 2048 -t rsa -f test_rsa,生成的私钥在SecureCRT上导入成功。

ssh-keygen参考:https://www.cnblogs.com/zhengah/p/4959725.html

sshd参考:https://blog.csdn.net/hddddk/article/details/83142399

继续阅读