cygwin在用ssh localhost登陆时遇到cp permission deniedd

下次自动登录
现在的位置:
& 综合 & 正文
ssh登陆问题
在安装hadoop的时候,每次在新打开计算机后,在cygwin里首次登陆ssh会出现如下错误:
《hadoop开发者》第一期里面也有提到过如果是windows域用户会出现如下错误:
提供的解决方案为:
基于提供的解决方案。
由于我在进入cygwin时没有遇到mkpasswd和mkgroup提示,所以直接运行了如下命令:
$ cygrunsrv -E sshd
$ /usr/sbin/sshd -ddde
运行结果如下:
之后退出cygwin,然后再重新进入。运行ssh localhost,结果提示连接被拒绝:
到这时仍然无法登陆。
退出cygwin,然后到cygwin的安装文件夹E:\cygwin\usr\sbin中双击运行sshd.exe。命令行的窗口会闪一下,然后消失。
这时再进入cygwin,ssh localhost,登陆成功!
在这之后如果退出cygwin再进入是仍然可以登陆成功的。但在每次关机后再开机,就得重新再这样一次。
其实到目前为止还是不知道这时什么原因,只是看到解决方案里运行的这条命令
$ /usr/sbin/sshd -ddde
里有sshd.exe文件,就试着去运行了一下,结果就可以登陆了。
希望高手可以解答,不胜感激。
&&&&推荐文章:
【上篇】【下篇】&&&&& cygwin是一个在windows平台上运行的unix模拟环境,是cygnus solutions公司开发的自由软件(该公司开发了很多好东西,著名的还有eCos,不过现已被Redhat收购)。它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用gnu工具集在windows上进行嵌入式系统开发,非常有用。
&&&& 在进行hadoop的windows安装后,第二步就是cygwin的安装,虽然很多人建议在linux环境下来进行hadoop的学习,但是很多人由于没有现成的环境,比如我,又比较懒,只好在windows下尝鲜了。cygwin在windows下虽然可能遇到很多问题,但是由于现在cygwin是由redhat在维护,我还是很有信心的,虽然遇到了一些问题,但是可以在windows下模拟unix的一些东西,抛开hadoop的学习不说,仅仅安装一个软件就可以能模拟unix难道不是一件很爽的事情吗,闲话少说了。
一、cygwin的安装
&& 我们可以到Cygwin的官方网站下载Cygwin的安装程序,地址是: 或者直接使用下载连接来下载安装程序,下载连接是:
下载完成后,运行setup.exe程序,出现安装画面。直接点“下一步”,出现安装模式的对话框,如下图所示:
我们看到有三种安装模式:
Install from Internet,这种模式直接从Internet安装,适合网速较快的情况;Download Without Installing,这种模式只从网上下载Cygwin的组件包,但不安装;Install from Local Directory,这种模式与上面第二种模式对应,当你的Cygwin组件包已经下载到本地,则可以使用此模式从本地安装Cygwin。
&& 这里需要说明一下的是,第一次全部安装选择第一种模式,但是后续我们开发过程中发现一些组件包没有安装的话,可以再次运行安装程序,选择第二种模式,也就是单独下载组件包而不安装,这样可以分次下载需要的组件包。等全部组件包下载完毕后,在运行第三种模式从本地安装组件包。
&& 需要特别注意的是,下载和安装的时候一定要记住使用的镜像站点,因为软件把组件包按照不同的镜像放置在不同的目录,如果几次下载的镜像不一样,那从本地安装的时候,是只能找到最新的一次的镜像下载的组件包的,这里需要注意。
从上述三种模式中选择适合你的安装模式,这里我们选择第一种安装模式,直接从网上安装,当然在下载的同时,Cygwin组件也保存到了本地,以便以后能够再次安装。选中后,点击“下一步”,
这一步选择Cygwin的安装目录,以及一些参数的设置。默认的安装位置是C:\cygwin\,你也可以选择自己的安装目录,然后选择“下一步”,
这一步我们可以选择安装过程中从网上下载的Cygwin组件包的保存位置,选择完以后,点击“下一步”,
这一步选择连接的方式,选择你的连接方式,然后点击下一步,会出现选择下载站点的对话框,如下图所示,
在这一步,需要注意,为了获得最快的下载速度,我们首先在列表中寻找Cygwin中国镜像的地址:,如果找到就选中这个地址;如果找不到这个地址,就在下面手动输入中国镜像的地址:,再点击“Add”,然后再在列表中选中。选择完成后,点击“下一步”,
(这里是之前的文档,目前最新的列表中,国内的有163的和中国科技大学的镜像站点,开始我选择的是163的镜像站点 但是这个镜像不稳定在我的环境中速度很慢,后来发现有科技大的镜像这个镜像估计是由于使用人不多,速度非常快,强烈推荐)
这一步,我们选择需要下载安装的组件包,为了使我们安装的Cygwin能够编译程序,我们需要安装gcc编译器,默认情况下,gcc并不会被安装,我们需要选中它来安装。为了安装gcc,我们用鼠标点开组件列表中的“Devel”分支,在该分支下,有很多组件,我们必须的是:
binutils&gcc&gcc-mingw&gdb
扩充一下:我们需要下载组件包如下:我是按照此顺序下载并正确安装成功的,注意选择不同包的最新版本,如autoconf我目前看到的最新的2.5,大家可以自行选择。
Devel分支下:
&& autoconf2.5
&&&automake1.9
&&&binutils
&& gcc-core
&& gcc-g++
&& gcc-mingw-core
&& gcc-mingw-g++
&& subvision
Base分支下:sed,主要是在eclipse下编译用的
net分支下:openssh和openssl
Editors分支下:vim用在修改配置文件
鼠标点击组件前面的循环按钮,会出现组建的版本日期,我们选择最新的版本安装,下图是选中后的四类组件的截图:
这里特别需要注意,选中的是那个带叉的图标,很奇怪的图标,但是老外就是这样。
binutils组件
gcc-mingw组件
选完以后,我们选择下一步,进入安装过程,如下图所示,
安装的时间依据你选择的组件以及网络情况而定。安装完成后,安装程序会提示是否在桌面上创建Cygwin图标等,点击完成退出安装程序。
二、cygwin的配置
&&&&& 这步骤是最多出现问题的地方,大家需要做好心里准备。
&&&&& 1.环境变量的设置
&&&&& path环境变量需要设置为cygwin的bin目录,在上一篇java安装的过程中也有提及。需要在path后增加e:\hadoop\cygwin\
&&&&& 2.安装sshd服务
&&&&& 启动cygwin terminal,输入ssh-host-config进行配置操作。出现have fun就代表配置成功了。
&&&&&&这里一点需要特别重要的是:在should privilege separation be used?一定要注意输入no&,也就是不为sshd的服务生成单独的用户,如果选择yes会单独生成用户,配置就会不成功的。
&&&&& 出现have fun后需要启动sshd的服务,如下图:
&&&&&&&&&&
&&&&& 我就是在这一步出错的,总是启动不成功。
&&&&& 查了很多的资料,主要是windows账户和linux账户root的区别,我尝试了ssh-host-config重新配置,并使用yes模式下生成sshd的账户方式,但是后来发现解决不了问题。
&&&&& 后来采用了如下的方式:
&&&&&&删除已经安装的sshd的服务:sc delete sshd
&&&&&&然后重新配置sshd,执行ssh-host-config使用yes yes no yes 空格
&&&&&& 也就是覆盖ssh_config文件,覆盖sshd_config文件 ,不生成单独账户,安装sshd为单独的服务,不输入任何值,在提示配置成功后,按照页面提示运行cygrunsrv -S sshd来启动sshd的服务,通过在运行中输入“services.msc”来查看服务的运行状况,如果cygwin sshd的运行状况是已启动,那说明服务安装成功。
&&&&& 3.配置sshd登陆
&&&&&&在terminal窗口中输入ssh-keygen成功密钥文件。生成id_rsa.pub
&&&&& cp id_rsa.pub authorized_keys
&&&&& 然后关闭terminal,然后在启动输入ssh localhost
&&&&&& 在窗口提示中提示输入的地方,输入yes完成sshd的登陆配置。
&&&&& 至此,完成cygwin安装已经sshd的安装配置
阅读(...) 评论()当前访客身份:游客 [
聪明在于学习,天才在于积累,业精于勤荒于嬉,行成于思毁于随 
:永健棒棒哒
:用root用户安全吗?
:整个堆大小=新生代大小 + 老年代大小 + 持久代大...
:原来如此
:一步步做下来的,putty返回错误 Network error:...
:引用来自“dzp443366”的评论不生效怎么不生效...
:很详细了,赞!
:那个错误,我找了多时,终于在这里解决了,太隐蔽...
今日访问:4
昨日访问:78
本周访问:4
本月访问:7442
所有访问:231606
Cygwin + OpenSSH FOR Windows的安装配置
发表于4年前( 12:16)&&
阅读(1282)&|&评论()
0人收藏此文章,
Cygwin是一款世界著名软件,它可将Linux下的自由软件移植到Windows系统上来应用,了解和掌握这个软件,将使您又多了许多有益的选择,并带您到一个更广阔的天空下翱翔,这对于您的学习和工作将起到确定无疑的推动作用。下面我用自己总结的一个例子,带大家进入这个世界。
& & 在windows操作系统中,使用Cygwin + OpenSSH开源软件来作为远程连接的安全工具,是一个非常好的方法,得到许多网管人员的青睐。然而要想顺利安装配置好这套软件,对于初学者来说,是有一定难度的。为了使同道们少走弯路,特将本人摸索的经验陈列于此,以供需要者参考。建议在安装配置这套软件之前,最好要初步掌握一些Linux终端操作技能及其技术概念。
以下所述是在Windows XP系统中实践完成,其它Windows系统可参照此文实施。
一、安装Cygwin + OpenSSH&
首先打开网页,点击如下链接:
将会下载一个安装Cygwin的setup.exe文件,然后在欲安装Cygwin + OpenSSH软件的磁盘上创建Cygwin目录,在此我们假定为:C:\Cygwin,运行setup.exe后打开图一:
& && && && &
& && && && && && && && && && &&&图一
图一主要提供关于Cygwin软件安装的一些信息,点击下一步后打开图二:
图二提供了三个选项:
第一选项:从Internet上下载并安装所需软件。
第二选项:从Internet上下载所需软件安装包到本地磁盘。
第三选项:从本地磁盘安装包的目录中安装所需软件。
此处选择从Internet上下载并安装所需软件,点击下一步后打开图三:
图三为指定软件安装的目标路径,其它按图上默认的选项选择。点击下一步后打开图四:
图四为指定软件安装包的本地存放路径。点击下一步后打开图五:
图五是选择连接Internet的方式,照图点选Use IE5 Settings,点击下一步后打开图六:
图六是选择下载Cygwin的网站,尽量选离我国近的网站,以提高安装速度。点下一步打开图七:
图七为软件包的选择界面,All所在行是选择全部软件包的位置,其它各行是软件组的选择位置,点击软件组前部的+号,可以打开软件组来选择所属软件项。点击所选软件项的循环箭头,可以选择对相应项目的操作方式,每点一次,该项目的操作方式就变化一次。
针对All及软件组的操作方式有四种选择:即Default、Install、Reinstall和Uninstall,依次代表:默认状态、安装、重新安装和反安装项。
针对软件项的操作方式有两类五种:
第一类:对未安装的软件项有两种选择,即Skip和该软件的版本号,Skip为跳过该软件的安装,显示软件版本号为确定安装该软件。
第二类:对已安装的软件项有三种选择,即Keep、Reinstall和Uninstall,依次代表:保持现状、重新安装和反安装项。
图八为打开NET软件组的界面
图八表示选择网络相关软件,我们要安装的是OpenSSH,故点击OpenSSH软件项相应的循环箭头,使原来的Skip变为版本号即可,与OpenSSH软件包相关的Cygwin支持软件包会自动配套选中,例如下一行的OpenSSL软件包也就自动选中了。点击下一步打开图九:
图九显示安装工作的进度,完成后自动打开图十:
图十中提示将在桌面建立Cygwin控制台图标和在开始菜单中添加Cygwin控制台图标。点击完成按钮结束安装工作。
注意:安装软件时,必须以Administrator用户身份来安装,否则可能出现许多莫名的问题,大概是由于用户权限不够造成的,估计是该软件出于安全考虑而有意设计的。
二、Openssh基本配置
1.增加环境变量
用鼠标右键单击我的电脑&&属性&&高级&&环境变量,
A.在系统变量框中新建变量名为:CYGWIN,变量值为:ntsec tty 的变量。
B.编辑path变量,在原变量值后加上以分号分隔的C:\Cygwin\bin字符串,注意保留原变量的值!
2.OpenSSH服务配置
双击Cygwin图标打开控制台,键入:cd /bin转入bin目录,再键入:ssh-host-config -y,执行后系统提示“CYGWIN=” 时输入ntsec tty即可。至此,SSH服务已被加入到Windows的自动启动服务项中了。
重新启动电脑进入普通用户界面,打开Cygwin控制台后,系统会在Cygwin的home目录下生成一个同名目录:youname (此处假设用户名为:youname),用户可以在command控制台上用:
登录自己的SSH服务器试一试,若能登录则表示安装配置基本成功,可以进行远程登录连接,若远程登录失败,可能的原因有以下几种:
1. 防火墙限制。在SSH服务器防火墙的例外中添加允许SSH端口通过的条目,SSH服务默认使用的是22号端口。
2. 如果客户端尝试登陆服务器时出现ssh: Permission denied的提示,则可能是/etc/passwd文件中没有该账号, 即使你已经通过passwd命令设定了密码. 解决办法是使用命令mkpasswd.exe -l & /etc/passwd,将windows的账号密码信息重新导入/etc/passwd
3.&Win32 error 1062.&
& &&Sometimes you get a sshd/cygrunsrv service error after trying to run the service.
& &&cygrunsrv: Error starting a service: QueryServiceStatus: Win32 error 1062: The service has not been started.&There can be a couple of causes for this. The following may fix the problem (this is not an option on XP Home).
& & &Solution 1 :You may have an old or corrupt installation of Cygwin. Try reinstalling. The following may also help:
&&&&&&&&cygrunsrv -R sshd
REBOOT (or use the Task Manager to kill all instances of sshd that may be running in the background) run &ssh-host-config -y& again. This seemed to help on a few systems I worked on.
&&&&Solution 2: Open an explorer window and use the &Properties | Security& dialog and explicitly add &Full Control& for the SYSTEM user to the following directories:
&&&&&&&&C:/Cygwin C:/Cygwin/var C:/Cygwin/var/log
3.启动OpenSSH服务的方法
A.在command控制台上启动:
Net&&start&&sshd& &&&#启动SSH服务
Net&&stop&&sshd& && &#停止SSH服务
B.在Cygwin控制台上启动:
Cygwin&&--start&&sshd& && &#启动SSH服务
Cygwin&&--stop&&sshd& && & #停止SSH服务
三、Openssh高级配置
提示:A.&修改sshd_config 文件前应先通过Cygwin控制台修改文件属性值,使当前用户具有修改权:
cd /etc& && && && && && &&&#转到sshd_config文件所在目录
Chmod 777 sshd_config& && &#修改文件属性值,使其他用户可以修改该文件
。。。。。& && && && && &&&#然后参照后面介绍的1、2、3条进行操作
Chmod 644 sshd_config& && &#修改文件属性,使其恢复原来的属性值
B.&sshd_config文件被修改后,必须重启SSH服务后改动项才能生效。
1.更改OpenSSH工作端口及协议版本
用写字板打开C:\Cygwin\etc\sshd_config文件,将port 22改为port 10022或其它自己想改的端口号,最好选1025 -- 65535之间其它软件未用的端口号。再将#Protocol 2,1 改为Protocol 2,使当前的SSH服务只支持2.0协议版本。此两项更改的目的是为了增强系统的安全性。
2.禁止超级用户远程登录OpenSSH
用写字板打开 C:\Cygwin\etc\sshd_config 文件,将 #PermitRootLogin yes 修改为PermitRootLogin no即可。若系统需要超级用户登录,则不必修改此项目。
3.仅使用非对称密钥安全登录
A.用写字板打开 C:\Cygwin\etc\sshd_config 文件,将#PasswordAuthentication yes 修改为 PasswordAuthentication no 。
B.在Cygwin控制台:
cd /home/youname& && &#转到当前用户目录
mkdir .ssh& && && && &#建立 .ssh隐含目录
C.将制作好的authorized_keys公钥文件复制到c:\Cygwin\home\youname\.ssh目录下
D.在Cygwin控制台:
cd /home/youname/.ssh& & #转到 .ssh隐含目录
chmod 700 ~/.ssh (修改.ssh目录的权限,否则不生效)
chmod 600 authorized_keys& &#修改文件属性使之生效(注:属性值大于600时该文件无效)
此后用户远程访问ssh服务器时,将不能凭用户密码登录,只能凭借对应的私钥来登录,排除了密码暴力破解的可能,提高了网络访问的安全性。
4.公钥对的生成
由于习惯了用putty作为登录ssh服务器的工具,故在此仅介绍用putty软件生成密钥对的方法。
A.可以从处,选择putty.zip下载,该软件为自由软件,可免费使用,当前版本为V 0.60。
B.解压后运行puttygen.exe , 打开图十一:
如图选择SSH-2 RSA和1024密钥长度,点击Generate按钮,打开图十二:
将鼠标在电脑屏幕上随机移动,密钥生成进度条随鼠标指针移动而前进,直至完成并呈现图十三:
图上部框中显示的是公钥内容,用户可以在key passphrase框及confirm passphrase框中输入密钥密码,以使密钥丢失后多一道安全防护。当然如果为了方便也可以不设密钥密码。
&&&&将图十三上部框中的公钥内容复制到public_key.ppk文件中,并保存为纯文本文件(不要点击“Save public key”按钮直接保存),然后将该文件上传到服务器并追加到~/.ssh/authorized_keys. 点击“Save private key”按钮保存私钥文件,该文件默认以 .ppk扩展名。请妥善保管好私钥文件,今后访问SSH服务器就要凭此私钥登录了。
四、卸载Cygwin
卸载Cygwin与安装Cygwin的过程差不多,也是先运行setup.exe,与安装时一样操作,直到出现图七所示界面时,将All设置为UnInstall后再点击下一步,系统将自动完成Cygwin软件的卸载,Cygwin的安装目录需要手工删除,注册表内与Cygwin相关的项目也要手动删除,如若删除不尽,可能会影响到以后Cygwin的顺利安装和配置,切记!
五、PUTTY软件的简单应用
运行Putty.exe打开图十四:
在Host Name框中输入SSH服务器的IP地址,Port框中输入OpenSSH服务的端口号,然后点开Connection&&&SSH&&&Auth打开图十五:
按图中选择相应项,在private key file for authentication框中填入自己私钥的保存路径,再回到图十四,在Saved sessions框中输入一个相关名字,再点击Save按钮将当前会话以相关命名保存起来,以供将来重复使用该会话。使用时选中会话,点击Load按钮装入,再点击Open按钮开始连接SSH服务器,连接界面弹出后,按提示输入用户名、私钥密码,验证通过后即可登录服务器了。
Putty还可以为其它软件联网建立连接隧道
更多开发者职位上
1)">1)">1" ng-class="{current:{{currentPage==page}}}" ng-repeat="page in pages"><li class='page' ng-if="(endIndex<li class='page next' ng-if="(currentPage
相关文章阅读Cygwin中登陆ssh localhost出现问题
[问题点数:80分,结帖人newday8166]
Cygwin中登陆ssh localhost出现问题
[问题点数:80分,结帖人newday8166]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关推荐:
2014年12月 高性能开发大版内专家分月排行榜第二
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。如何在Cygwin中安装并配置SSH
1. 下载Cygwin
2. 运行安装文件,选择一个下载站点,继续
选择要安装的程序,默认是不安装OpenSSH的,需要手动选择,在Net类别下选上OpenSSH和OpenSSL两项
等待下载并完成安装,之后,设置环境变量,把&C:/cygwin/C:/cygwin/usr/bin&加入到系统环境变量的Path中
打开cygwin,输入&ssh-host-config
&&& 当询问if
privilege separation should be used
时输入&no&.&
&&& 当询问if sshd
should be installed as a service
时输入yes&.&
&&& 当询问about the
value of CYGWIN environment variable
enter&时输入&ntsec&.
其余询问均输入&no
6. 打开 控制面板-》管理-》服务
启动名为&CYGWIN&sshd
的服务,亦可在cygwin中输入&cygrunsrv
sshd&启动sshd,
输入cygrunsrv --stop sshd停止sshd
打开cygwin,输入&ssh-keygen,当询问要filenames
和 pass phrases 的时候都点回车,接受默认的值
命令结束后输入&cd
~/.ssh&转到.ssh目录,输入&ls
&l&应该包含两个文件:id_rsa.pub&和&id_rsa
在第8步的窗口(当前目录在.ssh)中输入&cat
id_rsa.pub && authorized_keys
localhost&启动SSH
cygrunsrv: Error starting a service: QueryServiceStatus: Win32 error 1062:
The service has not been started.
$ mkpasswd -l & /etc/passwd
$ mkgroup -l & /etc/group
$ cygrunsrv -R sshd
$ ssh-host-config -y
$ cygrunsrv -S sshd
$ ssh your_username@localhost
显示所有用户
awk -F: '{print $1}' /etc/passwd
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 macpermission denied 的文章

 

随机推荐