rsa在windows和linux,在Windows下安装SSH

由于要在Windows下使用集群系统,因此需要有远程登陆和管理的工具,所以就找来OpenSSH for Windows,根据网上的资料在WinXP系统内进行的反复的尝试,但总是只能进行基于密码的远程登陆,无法采用基于密钥的无密码登陆,这样就必须在每次登陆的时候输入密码,既不安全也不便于实现自动化管理。

索性就改用cygwin实现的openssh,居然没有费什么劲就设置好了,想一想估计是因为OpenSSH for Windows的版本太旧了(最新的v3.81也是2003年的东西了),在WinXP上存在些兼容性的问题,加上需要手动修改其安装目录下的/etc/sshd_conf文件中的一些配置,不太好使也是难免的了。

在WinXP上通过cygwin实现openssh就要简单的多了,主要包括两个部分,首先配置SSH服务器,然后就可以通过在其中建立组与用户密码来实现基于密码的远程登陆,另外一部分就是通过在本地生成密钥对并上传给SSH服务器来实现基于密钥的远程登陆。

当然一切都是从cygwin的安装开始的,无论在服务器端还是远程的客户端都是必须要做的。安装的时候需要注意,除了缺省的那些包之外,还需要安装/libs/zlib、/net/openssh和/net/tcp_wrappers,这几个包不属于缺省安装的内容,因此需要在安装界面中手动选择。

配置SSH服务器

1. 配置ssh主机,在cygwin的控制台中输入如下命令:

ssh-host-config

当屏幕显示关于“privilege seperation”,输入yes后回车;

当屏幕显示关于“create local user sshd”,输入yes后回车;

当屏幕显示关于“install sshd as a service”,输入yes后回车;

当屏幕显示关于“CYGWIN=”,输入ntsec tty后回车;

当屏幕提示“Host configuration finished. Have fun!”时,就说明已经正常的完成了ssh主机的配置。

2. 启动ssh服务,也就是启动ssh的服务器功能,在cygwin的控制台中输入如下命令:

net start sshd

或者

cygrunsrv –start sshd

屏幕提示“CYGWIN sshd服务已经启动成果。”,或者没有任何错误提示(对于cygrunsrv命令而言),说明ssh服务已经正常启动。

3. 创建用户组与密码,在cygwin的控制台中输入如下命令:

mkpasswd –cl > /etc/passwd

mkgroup --local > /etc/group

至此服务器的配置已经完成,可以基于用户与密码实现从远程登陆SSH服务器。

通过密码登陆SSH服务器

在cygwin的控制台输入如下命令:

ssh username@hostname

其中hostname为建立SSH服务器的计算机IP地址或机器名,username为用于登陆该计算机的用户名称,如果根据前面的服务器配置步骤,应当就是该计算现有的某个账户名称。

如果是所用的客户端计算机是第一次登陆SSH服务器,命令行中会提示“Are you sure you want to continue connecting (yes/no) ?”,只要输入yes即可,SSH服务器会自动将这次的登陆信息存储在/.ssh/known_host文件中。

接着屏幕中会提示输入登陆账户的密码,也就是ssh服务器中登陆账户的密码,当显示“Fanfare!!! You are successfully logged in to this server!!!”时,说明已经成功登陆到ssh服务器计算机内了,需要注意的是,此时在当前控制台内输入的命令都将在ssh服务器计算机里运行。

如果要退出登陆,只要在命令行中输入

exit

即可,屏幕中会显示“logout Connection to [hostname] closed.”

通过密钥登陆ssh服务器

1. 在客户端计算机上安装好包含openssh的cygwin;

2. 为客户端生成rsa密钥,在cygwin命令行中输入:

ssh-keygen –t rsa

对于提示输入密钥文件名或密钥的包含密码时都可以直接回车,从而将无密码保护的密钥保存在缺省文件中,两个密钥文件都保存在客户端当前用户的cygwin账户目录的/.ssh文件夹中,其中公钥的名称比私钥的名称只多一个pub后缀。

3. 将客户端的公钥上传到ssh服务器,这时可以通过前面已经成功的基于密码的方式完成文件的上传,即在客户端的cygwin命令行中输入如下命令:

cd ~/.ssh

scp id_rsa.pub username@hostname:~/.ssh/newkey

4. 在ssh服务器中将客户端的公钥添加到authorized_keys中,在服务器的cygwin命令行中输入如下命令:

cd ~/.ssh

ls        (这时可以在目录中看到newkey文件)

cat newkey >> authorized_keys

rm newkey

chmod 600 authorized_keys  (更改文件的属性)0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值