2018-9-6
上一篇提到用ssh登录centos好处很多,许多linux系统管理员都在用ssh。在windows下ssh客户端主要有puTTY、Xshell、secureCRT、ssh secure shell。linux下有openssh,这是个命令行工具。这篇主要将puTTY和Xshell的使用。
puTTY
puTTY是开源免费软件。放恶意软件,建意到官网下载,或者百度、360、搜狗官方软件库。puTTY有许多组件,除了用来连接linux的,还有生成密钥的。可以下载打包好的安装包,方便一次安装完。
安装完我们可以看到一共有四个组件:
puTTY登录介面,输入账户。起个名字然后点击save保存,这样方便以后使用。如果不知道怎么输入可以参考:配置ip
除了登录介面,puTTY还有丰富的设置选项。translation里设置字符集,建意选UTF-8。这是国际标准组织发布的字符编码库。咱们国家自主研发的是gbk编码库,在linux上使用可能出现乱码。
window里面有一个回看选项,可以适当设大一点,可以查看更多linux的终端输入输出。比如设成2000行,puTTy就会保存2000行终端记录。
appearance里可以设置puTTY字体,嫌字小可以在这里调大
Xshell
xshell是收费软件,官方对个人和学校免费。所以xshell也可以免费使用。还是建意去官网或者靠谱的第三方软件库下载。现在其已经出6.0版本,我看搜狗软件库还是5.x版本。
打开xshell会有一个会话窗口,左下角可以设置取消。
添加新帐户
像puTTY一样输入目标linux的ip,不同的是xshell可以保存密码:选择password
首次连接也会安全提示,接受即可
Xshell比puTTY优势在于窗口标签管理方便、高效
但我觉得Xshell做的不好的地放在于登录管理不入puTTY严谨,比如可以直接记录密码可能别人使用你电脑造成损失。所以个人要管理好身份验证。
密钥登录
用ssh客户端登录,每次都要验证身份很烦,或者像Xshell那样保存密码有安全隐患。我们可以用密钥对验证登录。密钥对是又公钥和私钥组成,公钥是公开的,放在目标机器上,私钥用户保管,用来解密。
如果你使用puTTY的话,puTTYgen就是用来生成密钥对的组件。点击generate后注意进度条上放小字:晃动鼠标加快生成密钥。
生成密钥后还需对密钥设置密码,也可以不设置。私钥名称也可以改为方便自己记忆管理的。最后点保存公钥(public key)和私钥(private key)。
以上完成了密钥生成,下面我们在目标机linux上放置公钥。ssh登陆linux,输入命令mkdir .ssh
(在家目录下创建.ssh文件夹),然后输入命令vi .ssh/authorized_keys
(创建一个文件,并用vi编辑它),在vi里按a经入编辑模式,把刚刚生成的公钥内容复制进来,然后按Esc键,再输入:wq
退出vi。最后修改一下这个文件的权限:chmod 700 .ssh/authorized_keys
。
最后你还要查看一下centos的selinux有没有关掉。输入getenforce
,如果返回“enforcing”,那就需要输入setenforce 0
。或者编辑/etc/selinux/config,把enforcing改为disabled。
现在就可以用密钥验证身份登录centos了:打开新的puTTY,加载私钥然后在session里保存:
输入帐户名后直接验证登录,如果你给密钥设置了密码,还需要输入密钥密码。那样安全性高。
Xshell使用密钥登录,原理和puTTY是一样的。我试着在Xshell中倒入puTTY生成的密钥,没有成功。于是用Xshell生成密钥对,只看到了公钥,可能私钥直接保存内部了。
像puTTY那样,把生成的公钥内容复制到~/.ssh/authorized_keys中。以后各种密钥多了,可以用#开头的行注释。
用Xshell登陆前,编辑会话属性,在身份验证里更改验证方法为public key,选择对应私钥。
命令行下登录linux
linux怎么登录linux呢?linux下有ssh客户端有openssh,大部份发行版上都有。输入ssh --version
查看是否安装。
虚拟机克隆
做这个实验需要多台机器,如果再安装一边耗时耗力。vmware上可以快速克隆虚拟机。
关闭运行的虚拟机,在vmware找到克隆菜单,选择一个想克隆的状态:
选择创建链接克隆,占用磁盘空间小
克隆的虚拟机和原虚拟机完全一样,所以我们要修改相互冲突的设置,比如ip:vi /etc/sysconfig/network-scripts/ifcfg-XXX
。最好也更改下主机名,方便区分。
使用openssh登录linux
先用xshell登陆两太linux虚拟机,做好试验准备。
由于openssh是命令行工具,所以需要输入命令:ssh username@ip -p 22
。“-p 22”指定目标机sshd服务端口。sshd默认开放22端口,可以不写。username是以什么帐户名登录目标机,不写的话代表以当前机用户名登陆。ip是目标机ip,不知道怎么获得可以参考配置ip。
连接上目标机后验证身份正确就成功登陆了。openssh也可以使用密钥验证,包括密钥对生成和登陆。生成密钥对使用ssh-keygen
命令,在终端输入后根据提示保存公钥和私钥,然后参考前面写的,把公钥保存到目标机~/.ssh/authorized_keys中。
需要注意,如果多次生成密钥对,最好指定路径生成,防止覆盖了之前生成的。
最后强调一下,centos的selinux最好关了。亲身经历:没有关selinux,虽然能登陆上linux,但是不能上网。