由于大家比较朴实,将实验室服务器密码设置成了程序员都知道的。但最近有些实验室连续最近出现了非法入侵现象(由于服务器连的是内网,估计是校内小朋友干的,太伤心了)。只能采用开启密钥认证,禁用密码登录。

相信大家RSA非对称加密的原理大家都了解,这里就不赘述了。

这里主要是window下xshell设置方法:

首先填入你需要连接服务器的基本信息。


下一步:


之后的对话框,点击下一步,下一步,下一步


选择RSA加密。


生成秘钥对,私钥和公钥。


禁用DES密码算法有什么影响 禁用登录密码_服务器

这里输入私钥的名字和打开私钥的密码。 


点击保存公钥文件(作用可以看看下图中的说明),本文保存的文件名为id_rsa_1024.txt。


将id_rsa_1024.txt 拷贝(如使用xftp,rz等)到需要秘钥认证的服务器。

登入服务器:

(如果没有.ssh文件夹)$ mkdir ~/.ssh

$ chmod 700 .ssh
 $ cat id_rsa_1024.txt >> ~/.ssh/authorized_keys  (id_rsa_1024.txt 是你public key的文件名)  $ rm ~/id_rsa_1024.txt 
 $ chmod 600 ~/.ssh/*

如果以上步骤不能实现不输密码登陆的话,需要检查sshd服务的Pubkey认证功能是否默认打开

/etc/ssh/sshd_config:
 PubkeyAuthentication yes

   
如果修改后需要要重起你的ssh服务,用ssh –v来显示详细的登陆过程.

最后一步:关闭静态密码
建议不使用静态密码,以后都我们都使用key登录,修改如下内容可以关闭使用密码认证:

关闭Pam的传统密码认证.

PasswordAuthentication选项更改为 no

使用public登录:

选择刚才你跟公钥配对的私钥,输入你设置的打开私钥的秘密。点击ok即可登录。


其他:使用Export导出你的私钥给其他人使用。


其他人只有使用Import导入即可。

ps:关于两台服务器之间如何使用秘钥登录,这里给一个nopasswd脚本。


1. #!/bin/sh  
2. scp ~/.ssh/id_dsa.pub  $1@$2:~/  
3. ssh $1@$2 " touch ~/.ssh/authorized_keys ; cat ~/id_dsa.pub  >> ~/.ssh/authorized_keys; chmod 644 ~/.ssh/authorized_keys; exit"

执行方式 sh nopasswd USER REMOTE_HOST  注:USER 为另一台服务器用户名 REMOTE_HOST为另一台服务器ip地址。
执行此脚本前,请确认:
本机上已有 id_dsa.pub ,若无。 使用命令 ssh-keygen -t dsa 获得。
远程机上登录用户家目录下,已经有 .ssh 文件夹,若无创建之。


注意:这是在服务器还可以使用文本密码登录的基础上。