按照下面的方法可以构建SSH服务器,至于后面的可以下载putty来完成对服务器ssh方式的访问:
http://www.chiark.greenend.org.uk/~sgtatham/putty/
用OpenSSH构建SSH服务器
# vi /etc/ssh/sshd_config
↑ 用vi打开SSH的配置文件
将"#Protocol 2,1"
修改为 "Protocol 2"
↑ 只允许SSH2方式的连接(Centos 5.2中已包含此设置)将"#ServerKeyBits 768"
修改为 "ServerKeyBits 1024"
↑ 将ServerKey强度改为1024比特将"#PermitRootLogin yes"
修改为 "PermitRootLogin no"
↑ 不允许用root进行登录(wheel组用户SSH登陆后可用su命令使用root权限) 将"#PasswordAuthentication yes"
修改为 "PasswordAuthentication no"
↑ 不允许密码方式的登录(SSH远程管理用密钥登陆会安全很多)将"#PermitEmptyPasswords no"
修改为 "PermitEmptyPasswords no"
↑ 不允许空密码登录# vi /etc/hosts.deny
↑ 修改屏蔽规则,在此限定仅有哪些IP地址可以SSH远程登陆本服务器
sshd: ALL
↑ 在文件末尾添加这一行,屏蔽所有的SSH连接请求# vi /etc/hosts.allow
↑ 修改允许规则,在此限定仅有哪些IP地址可以SSH远程登陆本服务器
sshd:222.17.177.
sshd:10.3.92.25
sshd:10.3.97.137
↑ 在文件末尾添加这三行,只允许来自222.17.177网段、IP地址为10.3.92.25和IP地址为10.3.97. 137的SSH连接请求
# /etc/rc.d/init.d/sshd restart
↑ 重新启动SSH服务器
Stopping sshd: [ OK ]
Starting sshd: [ OK ]
↑ SSH服务器重新启动成功
# su -lovemoon
↑ 用普通用户 lovemoon 登陆服务器
$ ssh-keygen -t rsa
↑ 建立公钥与私钥
Generating public/private rsa key pair.
Enter file in which to save the key (/home/kaz/.ssh/id_rsa):
↑ 钥匙的文件名,这里保持默认直接回车
Created directory '/home/kaz/.ssh'
Enter passphrase (empty for no passphrase):
↑ 输入密钥口令(使用SSH远程软件时会用到)
Enter same passphrase again:
↑ 再次输入密钥口令(使用SSH远程软件时会用到)
Your identification has been saved in /home/kaz/.ssh/id_rsa.
↑ 建立了id_rsa私钥文件
Your public key has been saved in /home/kaz/.ssh/id_rsa.pub.
↑ 建立了id_rsa.pub公钥文件
$ cd ~/.ssh
↑ 进入 lovemoon 用户SSH配置文件的目录(~/目录相当于/home/lovemoon/)
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
↑ 公钥内容输出到authorized_keys文件中
$ rm -f ~/.ssh/id_rsa.pub
↑ 删除原来的公钥文件
$ chmod 400 ~/.ssh/authorized_keys
↑ 将新建立的公钥文件属性设置为400
$ exit
↑ 退出普通用户的登录
登陆为root用户,插入U盘
# fdisk -l
↑ 显示目前所有硬盘,找到U盘设备名为sdb1 (具体情况具体对待,这里各服务器有所不同)
# mount /dev/sdb1 /mnt
↑ 挂载U盘设备到/mnt目录
# mv /home/lovemoon/.ssh/id_rsa /mnt/
↑ 移动id_rsa私钥文件到U盘中
# umount /mnt/
↑ 卸载U盘
-----------------下面这篇文章详细介绍了如何使用putty ----------------------------------------------
简介
PuTTY 的http://www.chiark.greenend.org.uk/~sgtatham/putty/" href="http://www.chiark.greenend.org.uk/~sgtatham/putty/" target="_blank">官方网站:http://www.chiark.
PuTTY 是一个跨平台的远程登录工具,包含了一组程序,包括:
- PuTTY (Telnet 和 SSH 客户端)
- PSCP (SCP 客户端, 命令行下通过 SSH 拷贝文件,类似于 Unix/Linux 下的 scp 命令)
- PSFTP (SFTP 的命令行客户端,类似于 FTP 的文件传输,只不过使用的是 SSH 的 22 端口,而非 FTP 的 21 端口,类似于 Unix/Linux 下的 sftp 命令)
- PuTTYtel (仅仅是一个 Telnet 客户端)
- Plink (命令行工具,执行远程服务器上的命令)
- Pageant (PuTTY、PSCP、Plink 的 SSH 认证代理,用这个可以不用每次都输入口令了)
- PuTTYgen (用来生成 RSA 和 DSA 密钥的工具).
虽然包含了这么多,但平时经常见到只是用 PuTTY 登录服务器,完全没有发挥出 PuTTY 的强大功能。
PuTTY 作为一个组件也存在于很多的软件中,比如 FileZilla、WinSCP
在后面的文字中,如非特别说明,默认的登录的协议是 SSH。毕竟用 PuTTY 主要就是登录 SSH 主机,用 Telnet、RLogin 没法体现出 PuTTY 的强大功能。
安装
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html" href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html" target="_blank">下载页面在这里:[url]http://www.
PuTTY 需要安装么?需要么?需要么?真的需要么?不需要。PuTTY 是一个准绿色软件,说它绿色是因为直接就能使用,
第一印象,开始登录一台远程主机
运行 PuTTY 就可以看到下面这个界面
在这里输入服务器的 IP 或主机名,选择好登录协议,还有协议的端口,
最后点下面的 Open 按钮,输入正确的用户名和口令,就可以登录服务器了。
首次登录一台主机时
第一次登录时,会看到这个对话框
这是要告诉你登录的主机密钥指纹,点 Yes 就保存起来,以后就不会再弹出这个窗口,然后就正常登录。点 No 不保存,下次还是要提示你,然后也可以正常登录。
如果你曾经登录过这台主机,但是又弹出来这个对话框,
- 主机重新安装了操作系统
- 这台主机可能有多个IP,这次用的是另外一个 IP
- 有其他不怀好意的主机来冒充,诱骗我们登录,窃取隐秘信息
前两个情形很常见,一般点 Yes 就行了。后面这个嘛……唔……唔……,点 No/Cancel,再去询问相关的主机管理人员。
又看到了中文乱码
成功登录主机后,输入命令,这……这……显示,又是乱码。唉,
PuTTY 的默认字体和字符集并不适合中文显示, 在窗口标题上点击右键,选择 Change Settings...
在打开的配置窗口左边选择 Appearance,在右边点 Font settings 里面的 Change 按钮,选择好中文字体,比如:宋体、新宋体之类的
字体选择好了,还要确定字符集。
选择配置窗口左边的 Translation,在右边的 Received data assumed to be in which character set 下拉列表中选择最后一个“Use font encoding”,最后点下面的 Apply 按钮就生效了。
重新执行命令 ls -l,就可以正常看到中文了
怎么还是乱码?
如果还是乱码的话,就执行以下命令,看看系统的字符集
echo $LANG $LANGUAGE
哦,原来系统的字符集是 UTF-8 呀。重新返回上面选择字符集的那一步, 选择配置窗口左边的 Translation,在右边的 Received data assumed to be in which character set 下拉列表中选择“UTF-8”
这下99%的情形下,汉字是不会有乱码了。最后,总之一下 PuTTY 中乱码的解决办法:
先看看系统的字符集,如果是 UTF-8 的,那就简单了,选择好中文字体,然后编码选择 UTF-8 就行了。
如果编码是 GB2312、GBK、GB18030,当然也包括 BIG5这些,在 PuTTY 的编码选择中看不到这些编码,那就选择最后一个“Use font encoding”,绝大部分情况下这样就没啥问题了,
现在的 Linux 如果默认语言选择为中文,默认的编码就是 UTF-8 了。以前安装 Redhat AS 3 时,语言选择为中文,默认的编码是 zh_CN.gb2312, zh_CN.gb18030,好像从 AS 3 update 6 开始,包括现在的 AS4、AS5,中文的默认编码都成了 zh_CN.utf8。至于 Debian、Ubuntu 等等这些上面,好像一直都是 UTF-8。
至于是使用 UTF-8呢,还是用 GB2312、GBK 或者 GB18030呢?我个人还是倾向于 UTF-8。毕竟我们使用的大多数软件都是国外的,
下面的这个图上,我把终端编码修改为 zh_CN.utf8,然后也按照前面的所说的方法把 PuTTY 的字符集修改为 UTF-8。然后在终端中输入汉字“柴锋”,按左方向键,
我重新把终端的编码修改为 zh_CN.gb2312,同样的,把 PuTTY 的字符集修改为最后一个“Use font encoding”。还是在终端上输入汉字“柴锋”,
至于用哪个编码,主要还是看领导的决定了,我们的领导就喜欢 GBK,连 GB18030 都不行。以前在用 Debian 的时候,好像默认都不支持 GBK 编码。这几年公司的开发在汉字编码问题上出过几次麻烦,
给大家看一张 emacs 的截图,看看上面的这么多语言的文字共同显示,这个会是用 GB2312/GBK/GB18030 的编码么?
用 UTF-8 也不是为了要在一个屏幕上显示好几种不认识的文字,
在 PuTTY 里面怎样选中,复制和粘贴?
在 PuTTY 的窗口里面复制、粘贴可不能用 Windows 里的这些 Ctrl+C, Ctrl+Ins, Ctrl+V 这些快捷键,Ctrl+C 在控制台上可是终止当前的命令执行。
PuTTY 的选择、复制、粘贴这些操作都是通过鼠标来完成的。
在 Window-〉Selection 这里可以设置复制和粘贴的方式。
默认的 Action of mouse buttons (鼠标按键的功能)的选项是 Compromise,这种方式下选中有两种方式,
选中以后,单击鼠标左键就把选中部分复制到剪贴板了。
Action of mouse buttons 的第一个选项是 Windows (Windows 方式的),鼠标中键的操作跟前面提到的一样。右键不是粘贴了,
其实这个右键菜单在标题栏上点击,也都可以看得到。
第三个选项是 xterm (xterm 方式),这个跟默认的 Compromise 方式相反的,中键和右键的操作调换了一下,就不多说了。
下面那个 Shift overrides application's use of mouse 是和 Shift 键有关的。有些 Rogue Like 的程序,比如 mc、links、Lynx、VIM 等等,都支持鼠标操作,想在用鼠标在上面选择或粘贴就不行了。
看下面的这个图片,用 Links 打开了 Google 的首页,用鼠标去选中 顶部中间的 Google,我们会发现,弹出了保存的对话框。
按住 Shift 键重新操作一次,哈哈,这次选中了。
在 Control use of mouse 里面还有个 Default selection mode (默认的选择模式),默认是 Normal,就像文字处理工具里这样的选择
另外一个是 Rectangular block(块选择方式),至于用哪种方式就看自己的选择了。
实时保存会话
这次更改配置参数了,关闭窗口后,下次使用还是要重新选择的,
还是回到上面修改配置的哪个地方,选择左边的 Session,在右边选择要覆盖的会话名称,
关于注销登录的一些事情
成功登录主机后,也能正常看到中文了。这样,
这样做是不对的,首先这不是正确的注销方式,应该输入命令 exit 来正常注销;其次直接关闭窗口后,你的登录其实还在服务器上,
如果上述的理由是每次要输入 exit 然后回车,比较麻烦。你可以用快捷键 Ctrl+d 来注销登录,一般情况下,快捷键一按窗口都直接关闭了,
在前面说道保存会话时,大家或许也注意到,下面有个 Close window on exit 有三个选项:
- Always (不管怎样,窗口总是要关闭的)
- Never (无论是否有程序还在运行,都不要关闭窗口)
- Only on clear exit (这个是默认选中的,
只有在本次登录中运行的程序都正常终止或者在后台运行, 窗口才关闭)
有的程序在执行时,虽然在命令最后面加上 “&”就能放到后台运行。但是正常注销登录后,
用法嘛就是: nohup 命令 命令参数,这样就可以了。
窗口保存的输出有点少,前面的都看不到了
执行了一个命令,输出了好多东西,但是默认的配置下,
还是在标题栏上点右键选择 Change settings...,在配置窗口的左边选择 Window,修改右边的 Lines of scrollback,改大点,比如 20000、80000的
在上面的 Set the size of the window 里设置的是窗口显示的行数和列数,默认是 24 行、80 列,根据自己的需要来修改吧。
When window is resized 这个选项配置的是,当窗口大小发生改变时该采取什么动作。
- Change the number of rows and columns(这个是默认的,改变窗口大小时,
自动修改行数和列数) - Change the size of the font(这个是根据窗口的大小来修改字体的大小,
窗口最大化的时候,字都是很大的) - Change font size only when maximised(只有在窗口最大化的时候才改变字体大小)
- Forbid resizing completely(完全禁止改变窗口大小,一了百了)
在现代的 Unix/Linux 主机上,默认选项已经不存在任何问题了。如果是 Solaris 8 这样的老式 Unix 上最好用第2或第4个选项。
第3个选项嘛,要求你的屏幕不是宽屏的,选中这个选项以后,
顺便说一下,在 PuTTY 中的前后翻页,与 Linux 终端一样,用 Shift+PageUp/PageDown 来上下翻页,而 Ctrl+PageUp/PageDown 则是一行一行的。
新建一个会话时,还有些东西再啰嗦一下
前面把如何用 PuTTY 登录一台主机到注销的过程聊了一遍,
保持连接,不要自动断开
在 Connection 里面有个 Seconds between keepaliaves,这里就是每间隔指定的秒数,
默认输入 0 是禁用保持连接,在这里我习惯的设置了 10。
下面的那两个复选框都保持默认选中吧。
自动登录用户
在 Connection-〉Data 里面有个 Auto-login username,可以指定默认的登录用户。
自动设置环境变量
还是前面的那个界面,下面有个 Environment variables,在 Variable 输入环境变量的名称,Value里设置上环境变量的值,
Server refused to set environment variables
设置代理服务器
这个经常用到,设置方法大同小异,注意选择好 Proxy type(代理服务器的类型)就可以了。
代理服务器的地址填写到 Proxy hostname 这里,Port 就是代理服务的端口(HTTP代理常用端口有 3128、8080,Socks5代理常用端口有 1080)
Exclude Hosts/IPs 这里是填写排除的主机地址和IP,有些地址不需要代理,
有些代理需要认证,用户名填写到 Username,密码则填写到下面的 Password。
自动执行一个命令
在 Connection-〉SSH 里有个 Remote command,在这里面填写上远程服务器上的某个命令,比如:
我们在 Unix 上用 ssh 登录主机时用的命令 ssh,在 ssh 的最后面加上远程主机上的命令,就跟这个一样。
但是……,先别着急,一旦设置上这个选项,
因为命令执行完毕的同时,本次 SSH 登录连接也随之关闭。
你可以把远程自动执行的命令修改成 sleep 10,然后重新登录,再看看效果。
登录成功后,没有出现命令提示符,10秒钟后,窗口自动关闭。
冰雪聪明的你一定会想到,如果每次登录主机,都是要重新启动一下 tomcat,那这里就可以填写上这样的命令:
export CATALINA_HOME="~/apache-tomcat-5.5.17";export JAVA_HOME="~/jdk1.5.0_07"; export PATH=$JAVA_HOME/bin;$PATH ; cd $CATALINA_HOME/bin;./shutdown. sh;./startup.sh;tail -f $CATALINA_HOME/logs/catalina. out
(上面的命令是一行的哦)
先自动设置一下环境变量(前面有提到,
哈哈,是不是很方便?
不过前面提到的命令 sleep 10,只是建立了 SSH 连接,然后 10 秒钟后自动断开。是不是觉得很无聊没什么用途啊?
如果选中了 Don't start a shell or command at all 就禁用了自动执行命令这一个特性,这个主要是配合 Tunnels (隧道)来使用的。因为有时候,我们只需要利用隧道建立一个 VPN,而并不需要登录上去执行命令。
嗯,还有个问题哦,如果一次要执行的命令很多,该怎么办呢?嗯,
数据自动压缩传输,变相的提高传输速率
还是前面的那个界面,Protocol options 里面有个 Enable compression,这个选项的意思就是传输时压缩数据,
无需口令登录
在 Connection-〉SSH-〉Auth 这里面有两个需要了解的,以后在讲到 PuTTYGEN 和 Pagent 时会详细介绍的。
一个是 Allow agent forwarding,作用是允许私钥代理的转发。
另外一个是最下面的 Private key file for authentication,选择私钥认证文件。
这两个可以让你用 SSH 登录不用输入主机口令,但是私钥的口令还是需要输入的,
这些可以大大减轻了我们的重复工作,
X11 转发能够让你在 Windows 上使用 Linux 的程序
这里很简单,选中 Enable X11 forwarding 后登录主机,记得在我们本地运行 X 服务端程序(比如:免费好用的 Xming)。
然后在控制台直接输入 X 环境下运行的程序,比如:xlogo,我们就可以看到 Linux 上的GUI界面的程序在Windows桌面上打开了。
运行个复杂的,比如 gnome-session,这个是 GNOME 的启动命令,如果想打开 KDE 就是 startkde
这样跟在本地使用 X Window 几乎是一样的了,而且还是运行在 Windows 的桌面上呢,骗骗小 mm 还是不错的。或许你会问这样用跟 vnc 那还不一样了?答案是,不一样。如果网络环境不好,
打开了 GNOME 桌面,怎么关闭呢?点菜单的注销吧。如果你点了关机,
用 SSH Tunnels(SSH 隧道),突破防火墙
哇哦,突破防火墙!是不是忽然有了做黑客的感觉呢?呀!子弹,
简单的说一下,SSH 协议能够通过已经建立好的 SSH 加密链路来转发任意的网络连接,从而避免了网络中的明文传输,
先说一下大致的使用过程,登录到主机上以后,就可以建立好一个 SSH 隧道,这时在你的机器本地会开放一个端口,
说了这么多,实际演练演练就知道了。在 PuTTY 的 Connection-〉SSH-〉Tunnels 这里就是配置 SSH 隧道的。
Add new forwarded port 这里就是添加隧道转发端口的,其中 Source port 是隧道的源端口,也就是隧道的入口,连接隧道时要连接这个端口。
还要说明的一点是 SSH 隧道是有方向的,这个方向是由下面的单选按钮 Local/Remote/Dynamic 来决定的。如果下面的单选按钮选中的是 Local,那么 Destination 这里填写的目标是相对于远程主机而言,而非你的机器。
看明白了么?是不是会有些糊涂?后面我会举个例子来详细说说的。
开始演练,我们现在建立一条到远程主机 guantouping 上端口 7001 的隧道,在 guantouping 上可以用 nc -l -p 7001 localhost 这条命令建立一个监听本地到端口 7001 的连接,这样确保无法从其他机器访问这台主机的端口,只能在 guantouping 这台主机上用 telnet localhost 7001 来连接。现在我的机器 IP 是 192.168.6.25,如果直接用命令 telnet guantouping 7001 访问的话,那么在主机 guantouping 上会看到这样的提示:
[taylor@guantouping taylor]$ nc -l -p 7001 localhost
invalid connection to [192.168.6.200] from (UNKNOWN) [192.168.6.25] 1926
在这个配置面板上, Source port 上填写 8080,也就是我们要通过本地的 8080 端口来进入 SSH 隧道, Destination 这里填上 127.0.0.1:7001,就表示被登录的主机 guantouping 访问该主机本地的 127.0.0.1:7001 这个端口。正常登录到主机 guantouping 以后,SSH 隧道就建立好了。在我的机器 192.168.6.25 上输入命令 telnet localhost 8080,输入一些东西,就会在 guantouping 上看到有响应。在这里我用的是 nc,看起来方便一点,telnet 也是一样的。
这就是正向 SSH 隧道的一个例子,大家实地操作几次也就会明白了。
象特洛伊木马一样建立一条 SSH 反向隧道
下面要说的就是选中单选按钮 Remote 后建立的反向 SSH 隧道,这样的隧道做什么用呢?一般防火墙都是允许从内往外链接,
在 Source port 这里填写 8080,也就是隧道的入口是端口8080,
哈哈,这样一个特洛伊木马般的反向 SSH 隧道就建立完毕了。我们在远程主机上连接 8080 端口,其实就连接到了我们本地机器的7001 端口了。上面共有两个复选框,我们提到了一个,已经说了,
把 PuTTY 作为一个安全的代理服务器来使用
这个简单,在 Source port 那里填写上 1080,Destination 这里空下不填,选中下面的 Dynamic,最后别忘了点 Add 按钮。
登录远程主机后,一个代理服务器就建立好了,
设置 PuTTY 的默认设置
每次登录主机,无一例外的修改字体,修改字符集,
几台主机还好说,
选中一个先前配置好的会话,点 Load 按钮。
然后修改Saved Sessions会话名称 和 Host Name 这里的主机地址,点Save
如果在 Saved Sessions 这里和上面的 Host Name 清空,点 Save 按钮,就可以把设置保存为默认设置。
备份 PuTTY 的设置
用 PuTTY 最不爽的就是,它把所有的设置都保存到注册表了,
regedit /e PuTTY.config.reg "HKEY_CURRENT_USER\Software\SimonTatham\PuTTY"
删除 PuTTY 的设置
如果只是在其他机器上临时用了一个 PuTTY,用完以后想删除 PuTTY 的配置,就在控制台里输入如下的命令:
putty.exe -cleanup
用 PuTTYgen 来生成密钥,以后可以不用密码登录服务器了
PuTTYgen 是密钥生成器,用来生成一对公钥和私钥供 PuTTY、PSCP、Plink、Pagent 来使用。
直接运行 PuTTYgen 可以看到如下的界面。
点击 Generate 按钮就开始生成一个公钥和私钥对,生成完毕后,点下面的 Save private key 就可以把私钥保存起来,扩展名是 .ppk 的文件。
Load 按钮可以把先前保存的私钥重新打开,然后做些修改,
开始用 PuTTYgen 创建密钥
单击 Generate 按钮,然后你会看到进度条上面有个提示“Please generate some radomness by moving the mouse over the blank area.”,意思就是让你用鼠标在空白区域随机移动。
等进度条走完之后,会出现下面的界面
最上面那个大大的只读文本框里面是公钥,用来保存到 OpenSSH 的 authorized_keys 文件中,这个文件中的每一行都是一个公钥。默认情况下,
但是创建的文件、目录和用户主目录($HOME, $HOME/.ssh, $HOME/.ssh/authorized_keys)
StrictModes no
来取消这个限制。在 sshd_config 的帮助手册中可以看到
StrictModes
Specifies whether sshd should check file modes and ownership of
the user’s files and home directory before accepting login. This
is normally desirable because novices sometimes accidentally
leave their directory or files world-writable. The default is
“yes”.
小技巧:每次修改 authorized_keys 这个文件时,你可以用如下的命令来修改,
mkdir -p $HOME/.ssh && touch $HOME/.ssh/authorized_keys \
&& chmod go-w $HOME $HOME/.ssh $HOME/.ssh/authorized_keys && vim $HOME/.ssh/authorized_keys
还有一个要强调的是那个 Key comment,这是密钥的注释,一定要修改。
ChaiFeng [20061120] w.z.
后面的 w.z. 就是我的密码提示,能猜出来么?呵呵
输入注释,上面的公钥也会随之发生变化。
现在最重要的是,输入自己的密钥口令。就是 Key passphrase 和 Confirm passphrase 这个两个输入框。
如果不输入口令,直接保存私钥会看到这个提示。
最后单击 Save private key 来保存私钥吧,保存到自己认为安全的地方,比如存放到私人的 USB 闪存盘上。需要登录时,插上 USB 闪存盘。登录完毕后就可以把 USB 闪存盘取下来,哈哈,这样子就比较安全了。
大家也注意到了,还有个 Save public key 按钮,这个是保存 SSH2 格式的公钥,有些 SSH 服务器要求用这种格式的公钥文件。一般情况下,我们是不需要的,
用密钥登录服务器的流程
上面杂七杂八的说了一堆创建密钥时的事情,
- 如果没有公钥/密钥对,就用 PuTTYgen 创建一个,已经有了就可以忽略这一步。一个公钥/
密钥对可以用在不同的服务器上,所以也不需要重复创建, 关键要有足够强健的密码和安全的存放。 - 象先前一样输入帐户名和口令登录到主机上。
- 输入如下命令,来编辑 authorized_keys 文件
mkdir -p $HOME/.ssh && touch $HOME/.ssh/authorized_keys \
&& chmod go-w $HOME $HOME/.ssh $HOME/.ssh/authorized_keys && vim $HOME/.ssh/authorized_keys - 把
这个文本框里的公钥粘贴到 vim 中去,需要说明几点:这个文本框里的内容是一行的,粘贴到 vim 中时,别忘了按字母 o 这个键,否则的话,粘贴进去后,开头的 ssh-rsa 会变成 sh-rsa,为什么呢?哈哈,想想吧。
为什么不按字母键 i 呢?这个在 vim 中不就是插入么?原因是我很懒,按字母 o,我可以节省一次按回车键。虽然按大写 O 也行,那我不是还得再按一下 Shift 键么?
别忘了,在 PuTTY 中默认的粘贴可是按鼠标右键哦,然后按一下 ESC 键,然后输入 :wq 保存退出,等等,大家先别着急的输入 :wq,既然输入冒号还得按下 Shift 键,那我们就干脆直接两下大写的字母 Z,也就是 ZZ。怎么样?vim 也一样保存退出了吧。这次又节省了一次按键和两次寻找字母的移动, 把懒得优良传统再一次在实践中发扬光大。 - 如果已经有了私钥,第4步里的那个公钥忘记保存了,就用 PuTTYgen 把这个私钥 Load 上去,然后重新复制一下公钥吧。
- 在 PuTTY 的配置 Connection->SSH->Auth 这里面,指定上私钥,然后记得保存 Session,以后就不需要重复这一步了。
- 最好也指定上自动登录的用户名,还记得这里吗?
- 开始登录吧,这次你会看到一个不同于以往的登录提示
现在输入的口令可不是主机上这个账户的口令了,而是先前创建的这个密钥的口令。以后不管这个账户的口令是什么, 即使再复杂,也和我们没关系了。只要这个账户的 $HOME/.ssh/authorized_keys 文件中,有我们的公钥,我们就随时用匹配的私钥都可以登录了。 配合后面提到的 Pagent,我们连输入密钥口令这一步也可以忽略过去。 - 登录成功了,别忘了按 Ctrl+d 注销哦。
以后这些步骤就不需要再重复了,只需要打开 PuTTY 后,双击一下保存的会话名称,输入密钥口令。
Pagent 加载密钥,每次开机后只需要输入一次密钥口令
终于轮到 Pagent 出场了,双击一下 Pagent.exe,嗯,没反应?再双击一下,咦?
看看右下角吧,在这里呢
双击一下 Pagent 的图标,出来这样一个界面。很简洁的,Add Key 是添加私钥,Remove Key 是把选中的私钥从 Pagent 中卸载了。
好,现在单击 Add Key 按钮添加私钥,我把这个演示用的私钥保存到 C:\ 了
然后会出现输入密钥口令的对话框,输入正确的密钥后,单击 OK
这时,在 Pagent 的窗口中就能看到我们的私钥已经装载上去了。
现在打开 PuTTY,选择先前保存的 Session,双击一下。只要自动登录用户名设置上,
在 Pagent 的图标上点右键,也可以快捷的选择已经保存的会话。
建议大家把 Pagent 放到启动组里面,这样每次一开机,Pagent 自动运行,然后我们只需要把私钥装载一下,
用 SSH 来传输文件
PuTTY 提供了两个文件传输工具
- PSCP (PuTTY Secure Copy client)
- PSFTP (PuTTY SFTP client)