一、cygwin的安装
我们可以到Cygwin的官方网站下载Cygwin的安装程序,地址是: http://www.cygwin.com/或者直接使用下载连接来下载安装程序,下载连接是:http://www.cygwin.com/setup.exe
安装组件:
binutils
gcc
gcc-mingw
gdb
Devel分支下:
autoconf2.5
automake1.9
binutils
gcc
gcc-core
gcc-g++
gcc-mingw-core
gcc-mingw-g++
gdb
subvision
Base分支下:sed,主要是在eclipse下编译用的
net分支下:openssh和openssl
Editors分支下:vim用在修改配置文件
二、cygwin的配置
这步骤是最多出现问题的地方,大家需要做好心里准备。
1.环境变量的设置
path环境变量需要设置为cygwin的bin目录,在上一篇java安装的过程中也有提及。需要在path后增加e:hadoopcygwinin;
2.安装sshd服务
以管理员身份运行cygwin terminal,
取得cygwin的root权限
安装完成后运行一个bash窗口再关闭,在/home/目录下就会出现一个以你的用户名命名的文件夹(也就是cygwin为你创建了一个和windows一样的用户),例如我的就是/home/WANGCHAO,将这个文件夹改名为root
在/etc/passwd文件中找到你的用户名的哪一行,(WANGCHAO:unused:1000:513:U-WANGCHAO-PCWANGCHAO,S-1-5-21-703394362-527095193-1703888876-1000:/home/WANGCHAO:/bin/bash)把这一行的用户名都改为root同时设置权限为最大(root:unused:0:0:U-WANGCHAO-PC
oot,S-1-5-21-703394362-527095193-1703888876-1000:/home/root:/bin/bash)
保存完成以后再打开bash就会发现你的用户名变为了root并且通配符是#,这样就拿到了root权限并创建了root用户
$ chmod +r /etc/group
$ chmod +r /etc/passwd
$ chmod +rwx /var
输入ssh-host-config
Should privilege separation be used? (yes/no) yes,进行配置操作。出现have fun就代表配置成功了。
然后: net start sshd或cygrunsrv -S sshd启动
ssh-keygen成功密钥文件。生成id_rsa.pub
cyg_server@localhost's password: setsockopt IPV6_TCLASS 16: Protocol not available:
需要修改/etc/ssh_config
设置AddressFamily
= inet
重新安装sshd:
sc delete sshd
$ ssh-host-config
*** ERROR:There are still ssh processes running. Please shut them down first.
ps -ef | grep -v grep | grep ssh kill -9 xxx
$ ps -ef|grep -v grep|grep ssh
如果报problem with localsystem or administrator ids
解决方案:
按上图配置命令的提示说明,需要执行mkpasswd 和 mkgroup重新生成权限信息
依次执行下面命令
$ mkpasswd -l > /etc/passwd
$ mkgroup -l > /etc/group
$ cygrunsrv -R sshd 删除ssd服务
$ ssh-host-config -y 重新配置
$ cygrunsrv -S sshd 启动服务。
sshd服务启动成功。
无密码登录:
ssh-keygen
遇到提示输入文件名或是密码的地方不用管,只需按回车键即可。完成之后,在/home/username(“username”是登录名)目录下会有生成 一个".ssh"目录,“ls .ssh”之后会发现里面有两个文件,一个是id_rsa,另一个是id_rsa.pub,前者是私钥,后者是公钥。
在终端输入
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
建立信任连接列表
在终端输入
ssh localhost
如果有错误提示,类似"ssh: connect to host localhost port 22: Connection refused",说明你没有安装ssh-client,此时只需要在终端输入
sudo apt-get install openssh-client
安装完成后,再输入“ssh localhost”就应该没有问题了。按照提示输入相关信息就可以了