引言:

Linux大多应用于服务器,而服务器不可能像PC一样躺在办公室里,它们是放在IDC机房的,所以我们平时登录Linux系统都是通过远程登录的。Linux系统中是通过ssh服务实现的远程登录功能。默认ssh服务开启了22端口,而且当我们安装完系统时,这个服务已经安装,并且是开机启动的。所以不需要我们额外配置什么就能直接远程登录linux系统。Ssh服务的配置文件为/etc/ssh/sshd_config,你可以修改这个配置文件来实现你想要的ssh服务。比如你可以更改启动端口为36000.

为什么不用Telnettelnet因为采用明文传送报文,安全性不好,很多Linux服务器都不开放telnet服务,而改用更安全的ssh方式了。

1ssh的安装

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_rsaputtygen会用到,设置一个自己容易记又不会让人轻易破解的就可以了;


上述过程执行完毕后会生成两个文件,一个是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就可以了,不要再改了)


5windows上启动putty,进行如下配置

1Session-Logging-Hostname:填上你的linuxIP地址

(附:在Linux上用ifconfig命令获取,内容是inet之后的那一串数字)

2WindowsTranslation-在下拉菜单里选上UTF8

(这儿软件一般默认的就是UTF-8,不过最好还是确认一下,如果不是的话,登录后将会出现中文乱码)

3Connection-Data - Auto login username:填上你登录Linux时用的用户名。

4Connection-SSH-Auth-Private key file for authentication:选上id_rsa.ppk


然后点击open,按照提示输入密码即可访问。


附:密钥认证机制远程登录linux

SSH服务支持一种安全认证机制,即密钥认证。所谓的密钥认证,实际上是使用一对加密字符串,一个称为公钥(publickey),任何人都可以看到其内容,用于加密;另一个称为密钥(privatekey),只有拥有者才能看到,用于解密。通过公钥加密过的密文使用密钥可以轻松解密,但根据公钥来猜测密钥却十分困难。ssh的密钥认证就是使用了这一特性。服务器和客户端都各自拥有自己的公钥和密钥。