通过SecureCRT创建key登录认证
一、生成公钥/密钥对
使用SecureCRT的 工具->创建公钥 即可,加密算法选择RSA,因为sshd配置文件中选择了RSA算法
这一步中,通行短语可以不输入。但要求输入,登陆的时候会要求你输入通行短语。
并修改Comment 相关信息,采用 个人账户名称@服务器信息 方式
(可以所有的服务器都使用一个密钥对)
填写密钥长度,默认是1024
注意保存好密钥对,建议使用手机保存
这里选择生成的密钥使用 OpenSSH Key 格式。如果选择默认的格式,上传到服务器的时候需要执行格式转换的工作,需要通过命令行来连接的也需要通过securecrt来转换私钥为openssh格式,这里建议采用openssh key格式!
点击完成后会生成两个文件,默认是Identity和Identity.pub,其中Identity为私钥,Identity.pub为公钥。
二、服务器端的配置
上传Windows客户机SecureCRT生成的公钥 Identity.pub到用户home目录下.ssh文件夹中,一般是用ftp上传.注意上传之前,一定要以ASCII格式上传。
以本人用户为例
cd /home/yangzg
mkdir .ssh #在需要开启ssh连接的用户目录下建立 .ssh目录
chmod 700 .ssh
cd .ssh
mv Identity.pub authorized_keys #如果采用的格式不是openssh的话,就需要执行ssh-keygen -i -f Identity.pub >>authorized_keys 命令进行格式转换
chmod 644 .ssh/authorized_keys
更改ssh配置文件
vim /etc/ssh/sshd_config #修改,确认 ssh配置文件
PermitRootLogin no #禁止root登录
PubkeyAuthentication yes #启用公告密钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys
RSAAuthentication yes #允许RSA密钥
PasswordAuthentication no #禁止密码验证登录,如果启用的话,OpenSSH的 RSA认证登录就没有意义了。
重新加载sshd服务,使用/etc/init.d/ssh restart即可
到此,设置完成。可能通过新建会话来检验,在SecureCRT中新建会话时选择使用公钥认证即可,去掉密码验证,做登陆验证。
登陆测试,输入密钥通行短语,看看是否登录成功!如果登录不成功请从下面几个方面查看:
Ø 权限是否是644
Ø 属主是否正确
Ø 选择创建密钥的时候选择的是否是openssh,如果不是需要转换格式
三、采用命令行方式通过证书登录的设置
Ø 采用的openssh格式的证书的配置
直接将私钥Identity传输到对应的.ssh目录,比如传输到/home/zhangxy/.ssh,chmod 600 /home/zhangxy/.ssh/Identity
ssh -i /home/zhangxy/.ssh/Identity zhangxy@172.16.88.11 输入通行短语就可以连接进去了
Ø 采用标准公钥和VanDyke私钥格式的配置
先将私钥转化成openssh格式
转换后将Identity私钥转换到对应的.ssh目录,后面的操作和前面一样,这里就不赘述了!
四、Purry使用SecureCRT的私钥做证书登录配置
Ø 采用openssh格式的putty证书配置
直接利用puttygen.exe导入私钥,生成证书
导入后点击save private key保存证书就可以了!
打开purry,选择上一步创建的证书
配置完成,连接服务器看是否OK!
Ø 采用标准公钥和VanDyke私钥格式的putty证书配置
需要先将私钥转换为openssh格式,后面的操作和openssh格式的putty证书配置一样,这里不再赘述!
服务器下SSH的配置与问题
服务器端
1.在服务器端安装ssh
sudo aptitude install ssh
2.产生key
ssh-keygen -d
输入密码,然后产生id_dsa.pub 和id_dsa。
3.将公匙放到服务器端
mkdir ~/.ssh
mv id_dsa.pub ~/.ssh/authorized_keys
sudo chmod 600 ~/.ssh/authorized_keys
同时将id_rsa拷到U盘。
Sudo chmod 600 ~/.ssh
4.配置SSH
cd /etc/ssh
cp sshd_config sshd_config.backup
vim sshd_config
PermitRootLogin no
PasswordAuthentication no
UsePAM no
这样关掉了root登陆和使用密码登陆。
5.重启SSH
sudo /etc/inti.d/ssh restart
客户端
我使用的putty。
认证的地方不能直接用id_dsa,会报错误
Unable to use key file "id_rsa" (OpenSSH SSH-2 private key)
这是openssh使用的私钥格式与putty使用的私钥格式不一样。
这时候,打开puttygen.exe load id_dsa。然后保存private key。生成后缀是ppk的私钥。
如果报错误哦
Couldn't load private key (ciphers other than DES-EDE3-CBC not supported)
这是puttygen.exe的版本问题
在这里下载新的:
http://tartarus.org/~simon/putty-snapshots/x86/puttygen.exe
如果你直接用puttygen.exe生成一堆key。然后将public拷到服务器端的~/.ssh/authorized_keys,会报错:
Server Refused Our Key
这里有解决方法,没试过。最好的方法时用linux的ssh-keygen产生密钥然后用puttygen.exe进行转换。