我们Linux服务器都是通过SSH登录进行管理、维护的,那么这里我把我用SSH的一些东西记录下来,以后方便查看了。
一、一定要用SSH2了,不要用SSH1。
二、SSH客户端的问题:
1、Win下登录SSH服务器(字符界面),我选择了2个程序,
第一个是putty程序,比较有名了,而且好像是个免费的。小巧。但是一定要下载完整版本的。先到PuTTY网站去下载putty.exe, psftp.exe, puttygen.exe
Link: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
Binaries
The latest release version (beta 0.60). This will generally be a version I think is reasonably likely to work well. If you have a problem with the release version, it might be worth trying out the latest development snapshot (below) to see if I've already fixed the bug, before reporting it to me.
For Windows 95, 98, ME, NT, 2000, XP and Vista on Intel x86 | | |||
PuTTY: | putty.exe | (or by FTP) | (RSA sig) | (DSA sig) |
PuTTYtel: | puttytel.exe | (or by FTP) | (RSA sig) | (DSA sig) |
PSCP: | pscp.exe | (or by FTP) | (RSA sig) | (DSA sig) |
PSFTP: | psftp.exe | (or by FTP) | (RSA sig) | (DSA sig) |
Plink: | plink.exe | (or by FTP) | (RSA sig) | (DSA sig) |
Pageant: | pageant.exe | (or by FTP) | (RSA sig) | (DSA sig) |
PuTTYgen: | puttygen.exe | (or by FTP) | (RSA sig) | (DSA sig) |
这里面如果你只下载putty.exe,就可以远程登录了,但是有一些其它高级功能就没有办法使用了。所以我觉得还是尽量都下载下来吧。
Putty不能在登录到系统中后在命令行情况下直接和服务器上传、下载文件。必须要通过psftp来交流文件。我用了一段时间后才发现的,原本我还以为putty干脆没有办法在客户端和服务端直接传递文件呢。所以就用SecureCRT来回传递文件,深入使用后在网上找了一下文章发现可以通过这个psftp程序来传递文件,但是感觉还是要再执行一个程序,不像SecureCRT直接用命令就完成了那么方便。呵呵,什么时候putty也能像SecureCRT那样传递文件就好了。
2、SecureCRT 这个也是一个不错的登录程序,但是这个好像不是免费的。从网上找了一个破解的版本。
为什么我要用SecureCRT呢。直接和服务端传递文件方便。用命令sz和rz就好了。sz和rz这两个命令式Linux的一个软件包里的,如果你没有安装这个软件包就不会有这个命令,所以一定要安装这个软件包了。
yum install rzsz
安装上就好了。很简单的。
三、使用密钥方式来登录系统
传统的SSH登录系统方式就是用户名、密码,我现在感觉用密钥的方式比较舒服。推荐大家学习一下用密钥的方式来SSH登录系统
使用PUTTY客户端
3.1 使用puttygen.exe生成密钥
其中:引用Key comment:是注释,不会影响密钥的有效性,但可作为自己用于区别其他密钥的参考;
Key passphrase 和 Confirm passphrase :用于保护私钥,如果不输入该信息,那么任何人只要拿到该私钥,即可无密码登陆系统,非常危险;通常情况下,我是建议大家输入的,但这里为了方便说明,暂时留空,请看后面使用的说明。
上面密钥信息窗口的“Key”框最后生成的就是公钥信息:
需要把该信息拷贝到Linux服务器的特定文件中:~/.ssh/authorized_keys,文件名不能错,这个文件名其实是在SSH服务端的配置文件中要求的。
若.ssh目录不存在,请创建它,并把公钥信息写入文件中:
# chmod 700 ~/.ssh
# vi ~/.ssh/authorized_keys
# chmod 644 ~/.ssh/authorized_keys
※请务必留意:文件和目录的权限问题,用户必须是将要进行认证的用户,而权限必须是0644,也就是禁止其他人对该文件写入信息。(否则,某些有心人把自己的公钥写入这里,他也可以无密码进来了)
因为,通常umask是0022或0002的,所以请使用chown和chmod修改为对应的权限咯。
修改/etc/ssh/sshd_config:
UsePAM no #不使用PAM认证
然后重启sshd服务
将公钥上传到服务器
打开psftp.exe,然后使用open来打开指定的主机,这里是我虚拟机上的IP:192.168.32.227, 接着使用put命令上传公钥到服务器上,(注意:公钥必须要在psftp.exe运行的当前目录)
1.3 使用putty.exe登录到服务器上进行设置
登录到服务器上进行设置
使用putty.exe登录到服务器上,将刚刚上传的公钥移动到/root 或用户目录的.ssh目录下,我这里是root用户。如果没有.ssh目录存在,则先创建.ssh目录。并且设置目录权限为所有者读写和执行,其他的都没有任何权限。这一步一定要执行,否则会使密钥无效。
|
然后进入.ssh目录,执行以下命令:
|
以上是把上传的公钥转换成Openssh可以认的公钥格式,否则使用putty.exe将连接不上。
然后也要把文件authorized_keys 权限设置为所有者读写和执行,其他的都没有任何权限(600)。这一步一定要执行,否则会使密钥无效。