SSH学习使用

    我们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生成密钥

puttygen.exe 运行界面,点那个Generate按钮,密钥选择的是SSH-2 RSA的。
使用鼠标在“key”框内移动,以获得足够的随机数据供生成密钥使用,鼠标移动的越快那个进度条就越快。
生成密钥过程
※期间,你会看到进度条上面有个提示“Please generate some radomness by moving the mouse over the blank area.”,意思就是让你用鼠标在空白区域随机移动。随着鼠标在空白区域的移动,进度条会一直走下去。停止移动鼠标,进度条也就停止了。所以,那我们要移动鼠标,直到进度条走满为止。
完成后的窗口如下:
保存共钥与私钥密钥,也可以添加passphrase来保护你的密钥。
其中:
引用
Key comment:是注释,不会影响密钥的有效性,但可作为自己用于区别其他密钥的参考;
Key passphrase 和 Confirm passphrase :用于保护私钥,如果不输入该信息,那么任何人只要拿到该私钥,即可无密码登陆系统,非常危险;通常情况下,我是建议大家输入的,但这里为了方便说明,暂时留空,请看后面使用的说明。
保存私钥(私钥是留在客户端的。)
随后,点击“Save private key”保留私钥。
如果没有输入Key passphrase信息,会有警告:

输入私钥的文件名:
※公钥信息可以不用保留在本地的,puttygen可以从私钥得到它,验证时也不会用到。
拷贝公钥信息(公钥是放到服务端的)
上面密钥信息窗口的“Key”框最后生成的就是公钥信息:
点击在新窗口中浏览此图片
需要把该信息拷贝到Linux服务器的特定文件中:~/.ssh/authorized_keys,
文件名不能错,这个文件名其实是在SSH服务端的配置文件中要求的。
其中,“~”表示对应用户的主目录,以root为例。
若.ssh目录不存在,请创建它,并把公钥信息写入文件中:
# mkdir ~/.ssh
# chmod 700 ~/.ssh
# vi ~/.ssh/authorized_keys
# chmod 644 ~/.ssh/authorized_keys

※请务必留意:文件和目录的权限问题,用户必须是将要进行认证的用户,而权限必须是0644,也就是禁止其他人对该文件写入信息。(否则,某些有心人把自己的公钥写入这里,他也可以无密码进来了)
因为,通常umask是0022或0002的,所以请使用chown和chmod修改为对应的权限咯。
 
修改openssh配置

修改/etc/ssh/sshd_config:
ChallengeResponseAuthentication no #关闭挑战应答方式
UsePAM no #不使用PAM认证
然后重启sshd服务

1.2 使用psftp.exe将公钥上传到服务器上

将公钥上传到服务器

打开psftp.exe,然后使用open来打开指定的主机,这里是我虚拟机上的IP:192.168.32.227, 接着使用put命令上传公钥到服务器上,(注意:公钥必须要在psftp.exe运行的当前目录)

1.3 使用putty.exe登录到服务器上进行设置

登录到服务器上进行设置

使用putty.exe登录到服务器上,将刚刚上传的公钥移动到/root 或用户目录的.ssh目录下,我这里是root用户。如果没有.ssh目录存在,则先创建.ssh目录。并且设置目录权限为所有者读写和执行,其他的都没有任何权限。这一步一定要执行,否则会使密钥无效。

[root@lvdbing.net]#mkdir .ssh
[root@lvdbing.net]#chmod 700 .ssh

然后进入.ssh目录,执行以下命令:

[root@lvdbing.net .ssh]ssh-keygen --f Public >authorized_keys
[root@lvdbing.net .ssh]chmod 600 authorized_keys 

以上是把上传的公钥转换成Openssh可以认的公钥格式,否则使用putty.exe将连接不上。

然后也要把文件authorized_keys 权限设置为所有者读写和执行,其他的都没有任何权限(600)。这一步一定要执行,否则会使密钥无效。

1.4 使用putty.exe测试连接
打开putty.exe
指定私钥地址
登录成功

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章