转自:http://blog.csdn.net/zjf280441589/article/details/17408991
引言:
Linux大多应用于服务器,而服务器不可能像PC一样躺在办公室里,它们是放在IDC机房的,所以我们平时登录Linux系统都是通过远程登录的。Linux系统中是通过ssh服务实现的远程登录功能。默认ssh服务开启了22端口,而且当我们安装完系统时,这个服务已经安装,并且是开机启动的。所以不需要我们额外配置什么就能直接远程登录linux系统。Ssh服务的配置文件为/etc/ssh/sshd_config,你可以修改这个配置文件来实现你想要的ssh服务。比如你可以更改启动端口为36000.
为什么不用Telnet?telnet因为采用明文传送报文,安全性不好,很多Linux服务器都不开放telnet服务,而改用更安全的ssh方式了。
1、ssh的安装
sudoapt-get install ssh
2、生成密钥
ssh-keygen
中间过程会提示你存放密钥的地方Enterfile in which to save the key (/home/gavin/.ssh/id_rsa):我们选择默认,直接回车;
然后会提示Enterpassphrase (empty for no passphrase):设置一个进入私钥的密码,在后边导入id_rsa到puttygen会用到,设置一个自己容易记又不会让人轻易破解的就可以了;
上述过程执行完毕后会生成两个文件,一个是id_rsa(私钥),一个是id_rsa.pub(公钥);
这里将公钥改名为authorized_keys:
cd.ssh
mvid_rsa.pub authorized_keys
3、修改配置文件(/etc/ssh/sshd_config)
sudovim /etc/ssh/sshd_config
其中有这么一行#AuthorizedKeysFile %h/.ssh/authorized_keys,把前面的#去掉即可;
4、到windows平台将先前生成的私钥id_rsa,转换成putty所识别的格式(*.ppk),得到文件id_rsa.ppk.
(1)把linux上生成的id_rsa拷贝到windows平台下;
(2)下载puttygen.exe,(http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html)然后打开,我们要让它帮我们做个通行证,生成id_rsa.ppk;
详细步骤:
a)选择“load”,载入以保存好的私钥文件:
b)弹出的对话框里把“文件类型”换成“所有文件”然后选中我们从ubuntu服务器上生成的id_rsa文件;
c)接着,它会提示你输入密码,这不是你linux用户密码,而是前面下划线上得密码;
d)其他的选项直接默认就好了,设置完成之后,点击"saveprivate key",注意(格式为*.ppk)因为putty只识别自己做的钥匙;
(注意:这个文件名字就直接用id_rsa.ppk就可以了,不要再改了)
5、windows上启动putty,进行如下配置
(1)Session-Logging-Hostname:填上你的linux的IP地址
(附:在Linux上用ifconfig命令获取,内容是inet之后的那一串数字)
(2)Windows-Translation-在下拉菜单里选上UTF-8。
(这儿软件一般默认的就是UTF-8,不过最好还是确认一下,如果不是的话,登录后将会出现中文乱码)
(3)Connection-Data - Auto login username:填上你登录Linux时用的用户名。
(4)Connection-SSH-Auth-Private key file for authentication:选上id_rsa.ppk;
然后点击open,按照提示输入密码即可访问。
附:密钥认证机制远程登录linux
SSH服务支持一种安全认证机制,即密钥认证。所谓的密钥认证,实际上是使用一对加密字符串,一个称为公钥(publickey),任何人都可以看到其内容,用于加密;另一个称为密钥(privatekey),只有拥有者才能看到,用于解密。通过公钥加密过的密文使用密钥可以轻松解密,但根据公钥来猜测密钥却十分困难。ssh的密钥认证就是使用了这一特性。服务器和客户端都各自拥有自己的公钥和密钥。