您的位置:首页 > 其它

sshd由于登录失败而无法启动--cygwin安装过程

2012-08-13 16:08 639 查看
在安装cygwin的时候,执行ssh-host-config后显示如下:



木有后面要求输入的内容:

*** Warning: The following functions require administrator privileges!

*** Query: Do you want to install sshd as a service?

*** Query: (Say "no" if it is already installed as a service) (yes/no) yes

*** Query: Enter the value of CYGWIN for the daemon: []
ntsec tty

*** Info: On Windows Server 2003, Windows Vista, and above, the

*** Info: SYSTEM account cannot setuid to other users -- a capability

*** Info: sshd requires. You need to have or to create a privileged

*** Info: account. This script will help you do so.

*** Info: You appear to be running Windows XP 64bit, Windows 2003 Server,

*** Info: or later. On these systems, it's not possible to use the LocalSystem

*** Info: account for services that can change the user id without an

*** Info: explicit password (such as passwordless logins [e.g. public key

*** Info: authentication] via sshd).

*** Info: If you want to enable that functionality, it's required to create

*** Info: a new account with special privileges (unless a similar account

*** Info: already exists). This account is then used to run these special

*** Info: servers.

以上内容均未出现,在执行net start sshd的时候出现以下问题:

发生系统错误 1069。

由于登录失败而无法启动服务。

-- 这是由于用户密码输入错误导致的,以后更改用户后sshd也可能发生这个问题,在 services.msc 里的登录标签里更改用户设置即可!



输入账号和密码,启动过程中报如下错误:



(一)在cygwin上面启动老是报错,说cygwin无法启动,也木有报具体什么原因,那么只有改成administrator登录,再次尝试就ok了~

如果administrator起不了,请看一下是不是22端口已经启动了,查看有木有安装过sshd服务~

很有可能是因为之前的警告信息:



还有一种情况:

换成administrator登录后,还是报错无法启动,那么去/var/log/里面查看一下sshd.log,报错信息如下:

/var/empty must be owned by root and not group or world-writable.

那么只需要执行:

chown administrator:Administrators /var/empty

再次重启sshd服务就可以正常启动~

另外还有一种情况:

如果虚拟机是部署的,就会出现以下,刚开始启动不了,再次输入cygwin的密码启动,可以启动了,但老是报以下错误:

$ ssh localhost

Administrator@localhost's password:

Last login: Thu Oct 18 18:20:00 2012 from 127.0.0.1

/bin/bash: Operation not permitted

Connection to localhost closed.

如果问题排查都没有问题,最后只能用administrator启动,再修改一下log的权限就ok了~

(二)假如说启动换成administrator后还是无法启动,那么查看一下cygwin sshd服务,看路径对不读,启动报错:

执行net start sshd【或者也可以执行cygrunsrv -S sshd(启动sshd服务)】 后会报:

发生系统错误3

这个时候真的木有招了,网上也找不到答案,但是知道思路了,就是之前安装的已经删除,注册表中保存的还是之前的信息,所以就想着删除服务:

Administrator@localhost~

$ sc delete sshd

[SC] DeleteService 成功

或者:

cygrunsrv -R sshd (删除sshd服务)

重新安装配置:

Administrator@localhost~

$ssh-host-config

这个时候就会正常显示,总共要输入的内容都在下面:

######################################################

chmod +r /etc/passwd

chmod +r /etc/group

rm -rf /var/

ssh-host-config

yes

yes

yes

ntsec tty

yes

cygwin

cygwin

yes

$password

$password

net start sshd

mkpasswd -l >/etc/passwd

mkgroup -l > /etc/group

ssh localhost

yes

$hostpassword

######################################################

注意:

若非ntsec tty格式,后面通过远程登录,可能会提示以下错误:

[Administrator@NXY-2 .ssh]$ ssh 192.168.30.204

Last login: Mon Aug 13 18:17:54 2012 from 192.168.30.172

"tty" option detected in CYGWIN environment variable.

CYGWIN=tty is no longer supported. Please remove it from your

CYGWIN environment variable and use a terminal emulator like mintty,

xterm, or rxvt.

Administrator@icbc-host-204 ~

#######################################################

########## 如何解决启动过程中乱码问题,不支持中文 ###########

#######################################################

使用ls可以正常查看中文格式的文件名,但是在执行net start sshd的时候就出现以下情况:



查看系统编码:



查看cygwin的编码:



更改一下cygwin的编码格式就ok了~



再次启动就可以正常显示了:



(三)如果通过上诉方法删除sshd服务,但是你去查看服务的时候,还是标注原来的路径,且服务被禁用,这个时候我们就可以修改注册表:

打开HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\sshd\ImagePath,编辑修改字符串的值【修改成你现在cygwin的执行程序的路径】

在服务中看到的结果如下:



诺,路径已经正确了,可以修改启动类型为自动,然后保存,但是还是报以下错误:



注意:

那个CYGWIN的变量值就是在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\sshd\Parameters\Environment\CYGWIN

里面,若要修改直接打开修改值就ok了~

若出现以下问题,可以选择将netsec tty改成提示的mintty试试~

[Administrator@zy ~]$ ssh 172.16.1.137

Administrator@1172.16.1.137's password:

Last login: Wed Oct 17 17:25:40 2012 from 172.16.1.136

"tty" option detected in CYGWIN environment variable.

CYGWIN=tty is no longer supported. Please remove it from your

CYGWIN environment variable and use a terminal emulator like mintty,

xterm, or rxvt.

Administrator@zy ~

PS:

可以安装一个syslog软件包,然后远程登录的时候很炫的,哈哈~

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: