运维工作中,远程登录工具可以实现主机不在身旁的操作,并且更加灵活,功能也更加丰富。常用的远程登录工具有xshell、secureCRT和PuTTY。因为我常用的是下面两种,对下面两种做介绍。
一、X-shell
x-shell如果用x-manager安装的时候,是一个软件组,其中包含一个文件传输的工具,可以实现windows到linux的文件的便捷传输。
下面是xshell的密钥登录方法简介:
1. 首先,以正常的密码登录方式,登录远程的linux服务器,如192.168.127.222;
2. 点击工具中的秘钥 生成向导:
3. 点击下一步:
4. 输入公钥的名称和密码,点击下一步:
5. 复制公钥内容,并保存公钥文件到电脑磁盘中,点击完成:
6. 生成的私钥,点击关闭:
7. 新建.ssh目录和authorized_keys文件:
.ssh目录在新装的系统里面是没有的:
# mkdir /root/.ssh ##其他用户用家目录,即mkdir ~/.ssh,root的家目录就是/root/,是一样的。 # vim /root/.ssh/authorized_keys,拷贝进我们刚才复制的生存的公钥的内容,保存退出。 # chomd 700 /root/.ssh # chmod 600 /root/.ssh/authorized_keys ## 这两部分很重要,避免其他用户能看到key的文件。当然,普通用户无法查看root目录的,但也要注意。
另外注意一点,秘钥如果要被server许可,需要关闭防火墙Selinux和iptables,方法如下:
# vim /etc/selinux/config SELINUX=enforcing --> SELINUX=disabled # iptables -F ## 清空iptables的规则
如果要永久清空,还要执行命令service iptables save命令。
8. 配置sshd文件:
# vim /etc/ssh/sshd_config
打开下面两项前面的井号:
# PubkeyAuthentication yes # AuthorizedKeysFile .ssh/authorized_keys ##相对~目录的路径。
将密码登录改为no,这样就可以限制不通过密钥直接登录服务器了。
PasswordAuthentication no ##禁止用户密码登录,也就是说只能用上面打开的密钥登录方式。
重启sshd服务:service sshd restart,配置可生效。
另外,搜索port 22, 去除注释,将22去掉,自定义一个端口号,用root将配置文件权限修改,让普通用户不可查看的话,可以起到一定的安全的作用。
9. 新建登录:
10. 输入登录用户名:
11. 系统自动选择我们的钥匙,输入密码,登录即可;在这里,password登录时不能选择的,说明配置文件中的内容生效了:
xshell和putty相比,各有各的优势;putty中的复制和粘贴功能比xshell要好用。
二、PuTTY
关于配置文件的修改,参照上面的xshell的方法。
密钥生成的方法是用putty包自带的PuTTYgen,所以安装putty的时候,要安装完整版本,即带PuTTYgen工具的。
1. 打开PuTTYgen,点击Generate,鼠标光标在空白的位置来回晃动会增加生成密钥的速度。ssh-开头的就是生成的公钥,复制了放到xshell里面提到的~/.ssh/authorized_keys,修改权限700 600。填写公钥的命名和密码,Save private key到本地。
2. 参照上面xshell的配置文件修改方法,禁止单纯密码登录,自定义端口号。
3. 一次点击connection --> SSH --> Auth, 浏览保存的私钥。
4. Session部分,输入ip、自定义的端口号和要保存的标签,登录即可。
5. 如下是登录后的提示,要输入的是密钥的密码。
login as: root Authenticating with public key "ssh" Passphrase for key "ssh":
6. 关于随意修改putty显示字体:
本人比较喜欢Fixedsys字体,putty里面自己不带,可以在系统字体里面找,但提前要勾选以下选项:
7. 普通用户密钥登录方法
用putty密钥登陆出现server refused our key
打开sshd_config
找到StrictModes yes --> StrictModes no ## 关闭严格模式
# /etc/init.d/sshd restart # chmod 701 ~/.ssh/ # chmod 704 ~/.ssh/authorized_keys
完成上述的操作,普通用户才能用密钥登录,比较麻烦。本人亲测,.ssh目录必须要有执行权限,authorized_keys必须有读的权限。