分享

【转】Windows下SSH登录使用RSA证书认证代替密码认证

 左目右于 2012-07-23

【转】Windows下SSH登录使用RSA证书认证代替密码认证

Windows下SSH登录使用RSA证书认证代替密码认证

大家都介绍的是*nux机器ssh访问*nux的时候可以用RSA证书认证代替密码(当然这必须要求被登录的sshd服务器启用允许证书认证,因为 我有时候不允许这个),其实windows访问sshd的时候也可以,当然你必须安装ssh或者cygwin。下面我以cygwin为例:
首先在cygwin下执行ssh-keygen -d

[vitter@securitycn ~]# ssh-keygen -d
Generating public/private dsa key pair.
Enter file in which to save the key (/home/vitter/.ssh/id_dsa): (采用缺省值,回车)
Created directory '/home/vitter/.ssh'.
Enter passphrase (empty for no passphrase): (不用密码,回车)
Enter same passphrase again: (回车)
Your identification has been saved in /home/vitter/.ssh/id_dsa.
Your public key has been saved in /home/vitter/.ssh/id_dsa.pub.
The key fingerprint is:
71:50:79:88:70:86:98:c3:b9:48:40:17:2d:21:e8:de vitter@securitycn

这样,在/home/vitter/.ssh目录下生成如下两个文件:

id_dsa
id_dsa.pub

将id_dsa.pub传到sshd服务器上。
然后把里面的内容添加到服务器要登录的用户的.ssh目录下的authorized_keys文件中(以root为例):

[root@sshd1 ~]# cat id_dsa.pub >> /root/.ssh/authorized_keys

这样在windows下以后直接 ssh root@sshd1 就可以不用密码了。

[vitter@securitycn ~]# ssh root@sshd1

没有密码输入提示了。


如果用SecureCrt可以直接把生成密钥导入。或者用SecureCrt也可以生成密钥:
关于SecureCrt使用ssh2的补充
很多朋友都来问我ssh2如何实现.的确用ssh1有点过时了,不妨补充一下ssh2的使用说明,其实看了ssh1的使用说明,再来用ssh2一样很简单.

1.首先产生ssh2的秘匙对,我选择使用RSA加密.
Generate your key in SecureCRT (Global Options ->SSH2 ->Create Identity File) in RSA format
用SecureCRT生成RSA格式的密钥对,操作步骤:选项 -> 全局选项 -> SSH2 -> 创建身份文件

2.在linux服务器上建立.ssh目录,如果你以前已经在正常使用ssh1了,那就这一步可以不做,比如我这里要用root帐户使用ssh2
mkdir /root/.ssh
chmod 700 /root/.ssh

3.把生成的 identity.pub 传到linux服务器上,如果你已经在用SecureCrt,可以参考《SecureCRT来上传和下载数据http://hi.baidu.com/dlzok/blog/item/1739fc1fde4800f8e1fe0b22.html

4.导入公匙
ssh-keygen -X -f Identity.pub >> /root/.ssh/authorized_keys

对于不是用openssh的,因为不同软件生成的密钥是不通用的,所以方法有点变化,比如用Secure Shell的:


1. 在本地主机(比如,local)上生成自己的ssh公钥和私钥。命令如下:

local# ssh-keygen

Generating 1024-bit dsa key pair

Key generated.

1024-bit dsa, teng@ns, Fri Oct 20 2000 17:27:05

Passphrase :************ /*在此输入你的口令,以后访问这台主机时要用。

Again :************ /*

Private key saved to /home1/teng/.ssh2/id_dsa_1024_a

Public key saved to /home1/teng/.ssh2/id_dsa_1024_a.pub

生成的私钥和公钥(id_dsa_1024_a和id_dsa_1024_a.pub)存放在你目录的~/.ssh2目录下。和用户相关的SSH配置文件 都在~/.ssh2下。私钥由用户保存在本地主机上,而公钥需传送到远地主机的你自己的账号的~/.ssh2下,如果你要用ssh2访问本地主机的话。

2. 在~/.ssh2下创建“identification”文件用来说明进行身份认证的私钥。命令如下:

local:~/.ssh2# echo "IdKey id_dsa_1024_a" > identification

3.同样地,在远地主机(比如,remote)上完成上面步骤。

4.将本地(local)下你自己(这里是“teng”)的公钥(id_dsa_1024_a.pub)拷贝到远地主机(remote.54ncr.com)上你自己家目录下的.ssh2目录下,可命名为“local.pub”,一般用ftp上传即可。

5. 在远地主机上,你自己家目录的.ssh2目录下,创建“authorization”文件,其中指定用来进行身份认证的公钥文件。命令如下:

remote:~/.ssh2# echo “Key local.pub” > authorization

6. 现在你可以从本地用ssh2登录到远地系统了。命令如下:

local# ssh remote

Passphrase for key "/home1/teng/.ssh2/id_dsa_1024_a" with comment "1024-bit dsa,

teng@ns, Fri Oct 20 2000 17:27:05":***********

这时会要你输入你的ssh口令(Passphrase)。验证通过后,即登录到remote主机上。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多