CentOS 6.6 配置PuTTY远程登录
1. 下载与安装
可以下载putty-0.63-installer.exe(http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html),它是一个集成安装包,不仅包含了PuTTY,还包含了PuTTYgen,psftp等。
一路Next,默认安装即可。
2. 配置网络
1. 在配置网络之前,先使用ifconfig命令查看VirtualBox中CentOS系统的网络设置情况,对其做一个备份,然后需要关闭VirtualBox中的CentOS系统在进行下面的设置。
[root@CentOS66 ~]# ifconfig eth0 Link encap:Ethernet HWaddr 08:00:27:C3:12:74 inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fec3:1274/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:24 errors:0 dropped:0 overruns:0 frame:0 TX packets:32 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:11393 (11.1 KiB) TX bytes:3361 (3.2 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:16 errors:0 dropped:0 overruns:0 frame:0 TX packets:16 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:960 (960.0 b) TX bytes:960 (960.0 b)
2. WirtualBox 网络设置有多种方式,比如 NAT network,Bridge Adapter, Host only Adapter 等方式,为了简便,我们使用Bridge Adapter方式。这种方式 Guest OS和Host OS的IP地址在同一网段内,网络地位是对等的。
在Host OS(Win7)中 查看IP地址
描述. . . . . . . . . . . . . . . : Intel(R) Dual Band Wireless-AC 3160 #2 DHCP 已启用 . . . . . . . . . . . : 是 自动配置已启用. . . . . . . . . . : 是 IPv4 地址 . . . . . . . . . . . . : 192.168.1.105(首选) 子网掩码 . . . . . . . . . . . . : 255.255.255.0 默认网关. . . . . . . . . . . . . : 192.168.1.1 DHCP 服务器 . . . . . . . . . . . : 192.168.1.1 DNS 服务器 . . . . . . . . . . . : 202.106.46.151 202.106.195.68
3. 在VirtualBox主控制界面左侧选中CentOS系统->点击主控制界面中的Settings按钮->在左侧选择“Network”->在右侧的“Adapter 1”选项卡
连接方式(Attached to)选择 “Bridge Adapter”(默认选择是NAT,不是NAT network),Name选择 Host OS 上对应的物理网卡(,它会自动选择的,也就是上面的“Intel(R) Dual Band Wireless-AC 3160 #2”),其他保持默认,然后点击确定。
4. 启动CentOS,查看其IP地址,可见, CentOS的IP和宿主机Win7的IP在同一网段内了。
[root@CentOS66 ~]# ifconfig eth0 Link encap:Ethernet HWaddr 08:00:27:C3:12:74 inet addr:192.168.1.110 Bcast:255.255.255.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fec3:1274/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:23 errors:0 dropped:0 overruns:0 frame:0 TX packets:33 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:11993 (11.7 KiB) TX bytes:3667 (3.5 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:16 errors:0 dropped:0 overruns:0 frame:0 TX packets:16 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:960 (960.0 b) TX bytes:960 (960.0 b)
5. 检验Host OS和Guest OS能否ping通。
(1) Guest OS 中ping Host OS,能ping通
[root@CentOS66 ~]# ping 192.168.1.105 PING 192.168.1.105 (192.168.1.105) 56(84) bytes of data. 64 bytes from 192.168.1.105: icmp_seq=1 ttl=128 time=1.08 ms 64 bytes from 192.168.1.105: icmp_seq=2 ttl=128 time=0.578 ms 64 bytes from 192.168.1.105: icmp_seq=3 ttl=128 time=0.506 ms 64 bytes from 192.168.1.105: icmp_seq=4 ttl=128 time=0.511 ms
(2) Host OS中ping Guest OS,能ping通
C:\Users\msi>ping 192.168.1.110 正在 Ping 192.168.1.110 具有 32 字节的数据: 来自 192.168.1.110 的回复: 字节=32 时间<1ms TTL=64 来自 192.168.1.110 的回复: 字节=32 时间<1ms TTL=64 来自 192.168.1.110 的回复: 字节=32 时间<1ms TTL=64 来自 192.168.1.110 的回复: 字节=32 时间<1ms TTL=64 192.168.1.110 的 Ping 统计信息: 数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失), 往返行程的估计时间(以毫秒为单位): 最短 = 0ms,最长 = 0ms,平均 = 0ms
3. PuTTY远程登录
3.1 使用密码直接登录
1. 打开PuTTY,在Session选项卡中,输入CentOS的IP地址,Saved Sessions:取一个容易记忆的名字,其他保持默认。
2. 设置字符集
单击左侧的 Windows->Translation, Remote Character set 选择“UTF-8”。
3. 保存此设置
再次点击左侧的Session,然后单击右侧的“Save”,保存此次的设置。
4. 登录
点击“Save”保存设置后,点击最下方的“Open”按钮登录。
初次登陆时,会提示是否信任该Host,选”是“,然后会提示输入用户名密码。以root用户登录。输入root用户密码,这样就能登录到CentOS了。
3.2 使用SSH密钥登录
1. 生成密钥对
打开PuTTYgen,然后单击Generate按钮,这样就开始生成密钥了。注意:要不停的在PuTTYgen窗口的空白处点击鼠标,它会使用这些点击数据来生成密钥,这样不停击鼠标会加快密钥生成的速度。
”Key commetn“保持默认,”Key passphase“是给密钥设置的密码,可以留空(我这里留了空,没有设置)。”Confirm passphase“仍然留空。
2. 保存私钥
单击”Save private key“保存私钥,选择一个存放路径,并定义一个名称(C:\Users\msi\.ssh\PuTTY_SSH_Private_Key.ppk),单击保存按钮。把它保存在一个比较安全的地方,谨防丢失或泄漏。
3. 复制公钥到CentOS
PuTTYgen窗口的”Key“下方的长字符串,是公钥的内容,将其复制下来,然后在CentOS中做如下操作(也可以在上一节中用密码直接登录的PuTTY窗口中操作):
# mkdir /root/.ssh (如果已存在.ssh目录,则不必再创建) # chmod 700 /root/.ssh (如果.ssh目录的权限已经是drwx------,则不必再执行此条命令) # vim /root/.ssh/authorized-keys (然后将公钥的内容粘贴到该文件中)
粘贴后,按ESC键,然后输入:wq保存并退出vim。
4. 关闭seLinux
seLinux是CentOS的一种安全机制,如果不关闭seLinux,使用密钥登录会提示:”Server refused our key“。若要永久关闭seLinux,需编辑下面的文件:
# vim /etc/selinux/config
将 SELINUX=enforcing 这一行,改为 SELINUX=disabled。
5. 然后重启系统。
6. 打开PuTTY,在”Session“页面,单击选择已保存的”CentOS-6_6“,然后单击”Load“按钮,将保存的配置加载。
然后单击左侧的”Connection“下的”SSH“,展开后单击”Auth“,找到”Private key file for authentication:“,单击右面的”Browse“按钮,找到事先保存的私钥(C:\Users\msi\.ssh\PuTTY_SSH_Private_Key.ppk)打开。
7. 然后再次单击左侧的Session,起一个新名字: CentOS_6_6_SSH,然后单击右侧的“Save”,保存此次的设置。
8. 点击“Save”保存设置后,点击最下方的“Open”按钮登录。
结果还是提示”Server refused our key“。也就是说前面的配置都不成功。功亏一篑。
3.3 使用SSH密钥登录续
原来原因在于生成私钥文件的步骤是在windows下的,也就是说用puttygen这个工具生成公钥私钥,然后将公钥拷贝到linux下,再用私钥访问目前存在一些问题。
解决方案就是反过来使用linux生成私钥公钥文件,然后将生成的私钥文件拷贝至window下,用puttygen.exe加载(load)它生成putty支持的私钥文件,再用该文件访问。【2】
1. 以root用户登录CentOS,然后键入命令:
# ssh-keygen -t dsa
生成公钥私钥文件,它会提示你保存位置,以及是否设置密码,直接按Enter即可。你会在/root/.ssh隐藏文件夹下找到他们。
2. 修改公钥文件的名字id_dsa.pub >> authorized_keys
# mv .ssh/id_dsa.pub .ssh/authorized_keys
3. 将私钥文件id_dsa拷贝到你的windows下,打开PuTTYgen,然后点击load,对话框中的文件类型选择所有,load 这个id_dsa文件后,save private key,保存到一个目录下(不要保存到C:\Users\msi\.ssh目录下,好像不起作用,我保存到了D:\LinuxVirtual目录下)。按照上一节的介绍,PuTTY加载这个新生成的私钥就可以访问linux了。
参考资料
【1】 《跟阿铭学Linux 》 Chapter 3远程登录Linux系统
【2】关于使用putty私钥连接linux出现失败的原因解决方案(http://blog.csdn.net/magic_zj00/article/details/7470023)