本文共 2912 字,大约阅读时间需要 9 分钟。
学习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字体。转载地址:http://vvnhb.baihongyu.com/