如何将ssh公钥登录添加到cygwin

在Windows下安装SSH_Linux教程_Linux公社-Linux系统门户网站
你好,游客
在Windows下安装SSH
来源:Linux社区&
作者:woshizy
由于要在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服务器计算机里运行。
如果要退出登陆,只要在命令行中输入
即可,屏幕中会显示“logout Connection to [hostname] closed.”
通过密钥登陆ssh服务器
1. 在客户端计算机上安装好包含openssh的cygwin;
2. 为客户端生成rsa密钥,在cygwin命令行中输入:
ssh-keygen –t rsa
对于提示输入密钥文件名或密钥的包含密码时都可以直接回车,从而将无密码保护的密钥保存在缺省文件中,两个密钥文件都保存在客户端当前用户的cygwin账户目录的/.ssh文件夹中,其中公钥的名称比私钥的名称只多一个pub后缀。
3. 将客户端的公钥上传到ssh服务器,这时可以通过前面已经成功的基于密码的方式完成文件的上传,即在客户端的cygwin命令行中输入如下命令:
scp id_rsa.pub username@hostname:~/.ssh/newkey
4. 在ssh服务器中将客户端的公钥添加到authorized_keys中,在服务器的cygwin命令行中输入如下命令:
ls&&&&&&& (这时可以在目录中看到newkey文件)
cat newkey && authorized_keys
chmod 600 authorized_keys& (更改文件的属性)
相关资讯 & & &
& (10月02日)
& (09月19日)
& (10月08日)
& (09月29日)
& (09月17日)
图片资讯 & & &
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款
1142 发表于
(0) 匿名 发表于 112推荐这篇日记的豆列
······
(WordPressH)sudo apt-get install ssh  2)配置为可以无密码登录本机。  首先查看在u用户下是否存在.ssh文件夹(注意ssh前面有&.&,这是一个隐藏文件夹),输入命令:ls -a /home/u  一般来说,安装SSH时会自动在当前用户下创建这个隐藏文件夹,如果没有,可以手动创建一个。  接下来,输入命令:ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa  解释一下,ssh-keygen代表生成密钥;-t(注意区分大小写)表示指定生成的密钥类型;dsa是dsa密钥认证的意思,即密钥类型;-P用于提供密语;-f指定生成的密钥文件。(关于密钥密语的相关知识这里就不详细介绍了,里面会涉及SSH的一些知识,如果读者有兴趣,可以自行查阅资料。)  在Ubuntu中,~代表当前用户文件夹,这里即/home/u。  这个命令会在.ssh文件夹下创建两个文件id_dsa及id_dsa.pub,这是SSH的一对私钥和公钥,类似于钥匙及锁,把id_dsa.pub(公钥)追加到授权的key里面去。  输入命令:cat ~/.ssh/id_dsa.pub && ~/.ssh/authorized_keys  这段话的意思是把公钥加到用于认证的公钥文件中,这里的authorized_keys是用于认证的公钥文件。  至此无密码登录本机已设置完毕。  3)验证SSH是否已安装成功,以及是否可以无密码登录本机。  输入命令:ssh -version  显示结果:OpenSSH_5.1p1 Debian-<span style="color: #ubuntu2, OpenSSL <span style="color: #.9.8g <span style="color: # Oct <span style="color: #07Bad escape character 'rsion'.  显示SSH已经安装成功了。  输入命令:ssh localhost  会有如下显示:The authenticity of host 'localhost (::1)' can't be established.RSA key fingerprint is 8b:c3:<span style="color: #:a5:2a:<span style="color: #:b7:<span style="color: #:<span style="color: #:9d:<span style="color: #:<span style="color: #:4f:<span style="color: #:f8:<span style="color: #.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added 'localhost' (RSA) to the list of known hosts.Linux master <span style="color: #.6.<span style="color: #-<span style="color: #-generic #<span style="color: #-Ubuntu SMP Fri Oct <span style="color: # <span style="color: #:<span style="color: #:<span style="color: # UTC <span style="color: #09 i686To access official Ubuntu documentation, please visit:http:///Last login: Mon Oct <span style="color: # <span style="color: #:<span style="color: #:<span style="color: # <span style="color: #10 from masteradmin@Hadoop:~$  这说明已经安装成功,第一次登录时会询问你是否继续链接,输入yes即可进入。  实际上,在Hadoop的安装过程中,是否无密码登录是无关紧要的,但是如果不配置无密码登录,每次启动Hadoop,都需要输入密码以登录到每台机器的DataNode上,考虑到一般的Hadoop集群动辄数百台或上千台机器,因此一般来说都会配置SSH的无密码登录。
第1页:第2页:
本文欢迎转载,转载请注明:转载自IT168: []
正在努力加载文档,请稍等…
点击或扫描下载
点击或扫描下载您所在的位置: &
3.3.5 Cygwin 下 Git 访问 SSH 服务(2)
3.3.5 Cygwin 下 Git 访问 SSH 服务(2)
机械工业出版社
《Git权威指南》第3章Git的安装和使用,本章则介绍了Git在三种主要操作系统平台上的安装和使用。本节为大家介绍Cygwin 下 Git 访问 SSH 服务。
3.3.5 Cygwin 下 Git 访问 SSH 服务(2)
上面在设置 GIT_SSH 环境变量的过程中使用了 Cygwin 格式的路径,而非 Windows 格式的,因为 Git 是在 Cygwin 的环境中调用 plink.exe 命令的,所以要使用 Cygwin 能够理解的路径。
这样就可以用 Git 访问 SSH 协议的 Git 服务器了。运行在后台的 Pageant 会在需要的时候为plink.exe提供私钥访问服务,但在首次连接一个使用 SSH 协议的 Git 服务器的时候,很可能会因为远程SSH服务器的公钥没有经过确认而导致 git 命令执行失败。例如:$&git&clone&git@:ossxp/gitbook.git &Cloning&into&gitbook... &The&server's&host&key&is&not&cached&in&the&registry.&You &have&no&guarantee&that&the&server&is&the&computer&you &think&it&is. &The&server's&rsa2&key&fingerprint&is: &ssh-rsa&2048&49:eb:04:30:70:ab:b3:28:42:03:19:fe:82:f8:1a:00 &Connection&abandoned. &fatal:&The&remote&end&hung&up&unexpectedly&
这是因为在首次连接 SSH 服务器时要对其公钥进行确认(以防止被钓鱼),而运行于 Git 下的 plink.exe 没有机会从用户那里获取输入,以建立对该SSH服务器公钥的信任,因此 Git 访问失败。解决办法非常简单,直接运行plink.exe连接一次远程 SSH 服务器,并对公钥确认进行应答即可。操作如下:$&/cygdrive/c/Program\&Files/PuTTY/plink.exe&git@ &The&server's&host&key&is&not&cached&in&the&registry.&You &have&no&guarantee&that&the&server&is&the&computer&you &think&it&is. &The&server's&rsa2&key&fingerprint&is: &ssh-rsa&2048&49:eb:04:30:70:ab:b3:28:42:03:19:fe:82:f8:1a:00 &If&you&trust&this&host,&enter&"y"&to&add&the&key&to &PuTTY's&cache&and&carry&on&connecting. &If&you&want&to&carry&on&connecting&just&once,&without &adding&the&key&to&the&cache,&enter&"n". &If&you&do&not&trust&this&host,&press&Return&to&abandon&the &connection. &Store&key&in&cache?&(y/n)&
输入“y”,将公钥保存在信任链中,以后再和该主机连接时就不会弹出该确认应答了。当然,Git 命令也就可以成功执行了。
4. 使用自定义 SSH 脚本取代 Pageant
使用 Pageant 时还要在它每次启动时手动选择私钥文件,这比较麻烦。实际上,可以创建一个脚本对 plink.exe 进行封装,在封装的脚本中使用 -i 参数指定私钥文件。
例如,创建脚本 ~/bin/ssh-jiangxin,文件内容如下:#!/bin/sh &/cygdrive/c/Program\&Files/PuTTY/plink.exe&-T&-i&\ &&&&c:/cygwin/home/jiangxin/.ssh/jiangxin-cygwin.ppk&$*&
设置该脚本为可执行脚本。$&chmod&a+x&~/bin/ssh-jiangxin&
使用下面的命令通过该脚本与远程 SSH 服务器连接:$&~/bin/ssh-jiangxin&git@ &Using&username&"git". &hello&jiangxin,&the&gitolite&version&here&is&v1.5.5-9-g4c11bd8 &the&gitolite&config&gives&you&the&following&access: &&&&&R&&&&&&&&&&gistore-/.*$ &&&&&R&&&&&&&&&&/.*$ &&C&&R&&W&&&&&&&ossxp/.*$ &&&&&R&&W&&&&&&&test/repo1 &&&&&R&&W&&&&&&&test/repo2 &&&&&R&&W&&&&&&&test/repo3 &&&&@R&@W&&&&&&&test/repo4 &@C&@R&&W&&&&&&&users/jiangxin/.+$&
设置 GIT_SSH 变量,使之指向新建立的脚本,然后就可以脱离 Pageant 来连接 SSH 协议的 Git 库了。$&export&GIT_SSH=~/bin/ssh-jiangxin&
【责任编辑: TEL:(010)】&&&&&&
关于&&的更多文章
Git是用于Linux内核开发的版本控制工具。与常用的版本控制工具不
本书描述了黑客用默默无闻的行动为数字世界照亮了一条道路的故事。
真正的好书不在于给出答案,而在于给出思考问题的方法
模式意味着重用。好的模式建立在对人与事物的深刻认知
SDN(Software Defined Networking,软件定义网络)是
随着互联网的迅速发展,几乎所有工具软件和程序语言都支持的正则表达式也变得越来越强大和易于使用。本书是讲解正则表达式的经典
51CTO旗下网站}

我要回帖

更多关于 cygwin 添加组件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信