SSH使用总结,


 昨晚搞明白了Github通信中SSH的作用,对SSH有简单的了解。今晚来研究一下SSH的使用。

(1)生成密码对
    在本地执行ssh-keygen就可以生成密码对:


$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hevake_lcj/.ssh/id_rsa): 若无特殊指定要求,直接ENTER就行
Enter passphrase (empty for no passphrase): 输入密码短语,随便什么都行,以ENTER结束
Enter same passphrase again: 再输一遍,别输错了,否则会提示重输。
Your identification has been saved in /home/hevake_lcj/.ssh/id_rsa.
Your public key has been saved in /home/hevake_lcj/.ssh/id_rsa.pub.
The key fingerprint is:
5c:1a:fd:43:92:25:ae:94:44:9a:11:b8:ba:cb:ce:89 hevake_lcj@CentOS-6.3-i386
The key's randomart image is:
+--[ RSA 2048]----+
|     .ooo . .    |
|    .  = + +     |
|     .o + * .    |
|    .  o = +     |
|   .    S   o    |
|  .          .   |
|   .             |
| +..             |
|E.*.             |
+-----------------+
成功了


    在~/.ssh/ 目录下就会有两个文件,分别为:id_rsa, id_rsa.pub。前者为私钥文件,后者为公钥文件。

    密码对生成完成!

    在本地,将生成的私钥指定到ssh。也就是告SSH私钥在这个文件里:


$ ssh-add ~/.ssh/id_rsa
Identity added: /home/hevake_lcj/.ssh/id_rsa (/home/hevake_lcj/.ssh/id_rsa)



    将id_rsa.pub文件中的密文追加到服务器的 ~/.ssh/authorized_keys文件中。如果没有这个文件或~/.ssh目录就创建。     ~/.ssh/authorized_keys文本文件中,每一行记录一个公钥。每个公钥密文很长,但千万不能给它换行。

chmod 644 ~/.ssh/authorized_keys


    必须关闭其它帐户对该文件的改权限,否则sshd不工作。

(3)配置服务器
    SSH的服务程序是sshd。SSH服务器的配置使用的是"/etc/ssh/sshd_config"配置文件,这些选项的设置在配置文件中已经有了一些说明而且用"man sshd"也可以查看帮助。
    好像也不需要什么配置。由于前面修改了~/.ssh/authorized_keys文件,所以要重启一下sshd服务才生效:


$ sudo service sshd restart
停止 sshd:                                                [确定]
正在启动 sshd:                                             [确定]



(4)配置客户端
    配置完服务器后就可以在客户端登陆了。初始登陆会弹一个什么estribute什么的,问我们是(yes/no),输入yes继续。然后就会让我们输入passphrase,如果输入正确就成功连接。可以直接按ENTER跳过,验证帐户的登陆密码:


$ ssh 172.16.252.137 -l hevake_lcj
Enter passphrase for key '/home/hevake/.ssh/id_rsa':  输入密码短语或是直接ENTER跳过
hevake_lcj@172.16.252.137's password:  输入hevake_lcj帐户的登陆密码
Last login: Wed Apr 24 21:57:40 2013 from 172.16.252.1
[hevake_lcj@CentOS-6 ~]$  成功登陆

    OpenSSH 有三种配置方式:命令行参数、用户配置文件和系统级的配置文件("/etc/ssh/ssh_config")。命令行参数优先于配置文件,用户配置文件 优先于系统配置文件。所有的命令行的参数都能在配置文件中设置。因为在安装的时候没有默认的用户配置文件,所以要把 "/etc/ssh/ssh_config"拷贝并重新命名为"~/.ssh/config"。 也可以新建这个文件,但一定要注意文件的权限,不能让其它用户有写权限。
    但如果你觉得这么做比较麻烦,也可以将IP地址与帐户追加到~/.ssh/config配置文件中

Host host1
HostName 172.16.252.137
User hevake_lcj

Host host2
HostName 192.168.1.103
User lichunjun


    我们输入命令 "ssh host1" ssh就会去~/.ssh/config文件中找到host1这个Host对象,并加载IP地址与登陆帐户。同样"ssh host2"也是一样的。

    ~/.ssh/config还有很多其它配置,详请执行 man ssh 可以找到相关的说明。

(5)其它
    公认的登陆命令格式: ssh -i ~/.ssh/<PrivateKeyFileName> <username>@<remote IP>


ssh hevake_lcj@172.16.252.137


相关内容