Linux使用PuTTY远程登录

学习linux有半个月了,在这半个月的学习过程中遇到了很多问题,今天来就其中的一个问题归档整理-远程工具PuTTY相关问题。

首先简单介绍一下PuTTY:
PuTTY为一开放源代码软件,主要由Simon Tatham维护,使用MIT licence授权。随着Linux在服务器端应用的普及,Linux系统管理越来越依赖于远程。在各种远程登录工具中,Putty是出色的工具之一。Putty是一个免费的、Windows 32平台下的telnet、rlogin和ssh客户端,但是功能丝毫不逊色于商业的telnet类工具。目前最新的版本为0.63。常用的远程登录软件还有:Secure CRT, Secure SSh, Xshell等。

远程登录linux服务器时,putty提供两种方式。一种是使用用户密码直接登录,另一种是利用密钥对进行登录。前者设置简单,但安全性较低,这里主要说一下使用PuTTY生成密钥对进行远程登录。

密钥对的工作原理:
密钥对是指公钥加密(或者非对称加密)的加密算法,比如RSA和DSA等,这类算法使用一对密钥即公钥和私钥。其中,公钥可以随便分发,只用于加密,私钥则只由一人持有,只用于解密。任何用公钥加密的信息,用私钥解密后即可得到原来的信息。
RSA密钥对的工作原理如下:
假设两个用户A,B进行通信,A和B都要产生一对用于加密和解密的公钥和私钥,A的公钥和私钥分别为publicA和privateA,B的公钥和私钥分别为publicB和privateB。
(1)A和B要相互发送信息,所以彼此要交换公钥,A的公钥告诉B,B的公钥告诉A。但是私钥保密,只是自己拥有。
(2)A向B发送信息,明文为x 。
A用B的公钥对明文x进行加密形成密文publicB(x),然后传输密文给B;
B收到密文,用B的私钥对密文进行解密privateB(c(x)),得到要通信的明文x。
(3)B向A发送信息,明文为y 。
B用A的公钥对明文y进行加密形成密文publicA(y),然后传输密文给A;
A收到密文,用A的私钥对密文进行解密privateA(c(x)),得到要通信的明文y。

设置密钥对的过程:
先以root密码登录的方式连接到服务器上,方便后面粘贴密钥到Linux系统的相对应文件内。
①打开PuTTY的PuTTYgen,点击Generate生成密钥(包括公钥和私钥)。(鼠标在进度条上不断抖动,加快生成进度)
②本地保存私钥
③保存公钥到服务器
新建一个目录存放公钥
命令:mkdir /root/.ssh
ls /root/ 列出当前文件及目录(看不到隐藏目录)
ls -a /root/ 可以看到所文件及目录
在 /root/.ssh /目录下创建一个文件authorized_keys
命令:vi /root/.ssh /authorized_keys
将公钥复制到 authorized_keys 文件下,:wq保存退出。(按 i 键进入编辑模式
④给公钥所在的目录和存放公钥的文件设定权限
命令:chmod 700 /root/.ssh/ (只有root用户可读写、进入)
chmod 600 /root/.ssh/authorized_keys
⑤关闭系统防火墙
Linux有两个防火墙 selinux 和 netfilter( 命令工具:iptables)
关闭selinux
命令:setenforce 0 临时关闭
修改配置文件:
命令: vi /etc/selinux/config
编辑: SELINUX=disabled 保存退出,重启永久生效。
关闭netfilter
命令: iptables -F 临时清除iptables规则
service iptables save 将防火墙规则保存到配置文件中永久生效
⑥配置客户端PuTTY
新打开一个PuTTY窗口,加载目标虚拟机,保存对应私钥。open登录虚拟机。
完成密钥验证。
过程中的问题:Server refused our key
出现原因:在将密钥赋值到/root/.ssh/authorized_keys文件内时,没有按“i”键(或其他键)进去编辑模式,而是直接右键粘贴,这时公钥是被粘贴到了这个文件内,但是少了第一个字母:
公钥的内容如下:ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEA6QZcwPmSPKTk8KpRPsrDdRncREe32H0Pd2BveVEr+NU/MK8YzVZnAYNPvQGZSAoTdFRRJely/Pm31PaoMjKIvuesZEs7PLxYSM9yXmywvrBmfC0EUaumahztUcO67owP5sGhzo2fUgI21QqWbkIgq4IQ338j+FUwP1VURWckmg3R1b1aawSkmEaq+CRdwf+yMf3kOVBc4gA1s112qlp2CW7CRO4SNkPqRZyH5/zUqz8CmpjtpmE3mfG/UtNytN2KrUY7B7xZRfjoncL3snj/RJcSoz7mPgKu2/xpvsT4sG+nxo5yORIWvX6wieOgPAjs57sbCkM3W/JAYJSW30iBLw== rsa-key-20160317
当直接粘贴时,s 会被认为是进入编辑模式的一次键入而被抵消,因此公钥保存失败,所以Server refused our key。

补充:SSH (Secure shell)安全外壳协议
SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。
SSH采用面向连接的TCP协议传输 应用22号端口 安全系数较高。

远程连接Linux服务器,需要Linux服务器开启sshd服务,shd服务默认监听22端口,这个端口是可以自定义的,需要修改/etc/ssh/sshd_config配置文件,把 “#Port 22”修改为”Port 12553” 其中12553就是新定义的sshd端口。

PuTTY的常用设置:
调整putty显示的字体方法:从左边目录进入Window-Appearance页面,点击字体设置(Font settings)中的更改(Change)按钮,选择合适的字体和大小。
更改putty字符集支持中文的方法:从左边目录进入Window-Translation页面,在Remote character set栏选择UTF-8字体。

你可能感兴趣的:(linux)