10.用好远程联机服务器

1.用ssh协议远程联机

1.安装

用 yum 命令进行查看是否安装 openssh 相关软件包

 yum list installed openssh

安装 openssh 相关软件包

yum install openssh

2.启动

openssh-server 的守护程序名为 sshd,查看状态

 chkconfig --list|grep sshd

其在相应运行级别开机自启动

chkconfig - -level 2345 sshd on

3.开放端口

确认系统防火墙(iptables)是否开放了 SSH 服务的 22 端口

cat /etc/sysconfig/iptables|grep 22

有这一行端口正常开放:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

否则,用 vi打开 iptables 的配置文件/etc/sysconfig/iptables 添加该行,然后重启防火墙服务

4.安全配置

(1)SSH 服务器自身安全配置;

 vim 打开/etc/ssh/sshd_config:

Protocol 2
#表示不接受 root 用户远程联机
PermitRootLogin no
#表示不接受口令为空的用户远程联机
PermitEmptyPasswords no
#表示不接受主组为“not_ssh_user”用户远程联机
DenyGroups not_ssh_user
#表示不接受名为“dev”用户远程联机
DenyUsers dev
#表示当客户端 30 秒内没有任何动作,服务器将发送一个 alive 消息给客户端,如果连发 4
#次 alive 消息,客户端仍然没有动作,服务器将断开连接.
ClientAliveInterval 30
ClientAliveCountMax 4

可以考虑将不允许通过 SSH 远程联机的用户归到一个用户组中,然后拒绝这个组远程联机;

同时为了安全起见,可以考虑不允许 root 远程联机,在需要用 root身份进行管理时,通过普通用户远程登录到主机,然后再用“su –root”命令获得 root 权限

(2)系统防火墙(tcp_wrappers 1 )配置;

用 vim 打开/etc/hosts.deny文件,添加如下行,表示拒绝所有 ssh 连接:
sshd:ALL:deny
打开/etc/hosts.allow 文件,添加如下行,表示只接受来自 192.168.71.0 网段和地址为 39.187.121.53 主机的连接。
sshd: 39.187.121.53 192.168.71.0/255.255.255.0:allow

(3)通过可靠的手段向用户公布主机指纹

 用主机私钥生成主机密钥指纹,注意只有 root 才有读写主机私钥的权限

ssh-keygen -lf /etc/ssh/ssh_host_rsa_key

2048 42:d6:82:81:5d:20:2e:d3:c8:9b:09:e4:91:c1:6f:f4 /etc/ssh/ssh_host_rsa_key.pub(RSA)
# 42:d6:82:81:5d:20:2e:d3:c8:9b:09:e4:91:c1:6f:f4

5 在 在 Linux  上用 SSH  客户端远程登录主机

ssh [选项] 用户名@主机名或者 IP 地址
 -p 指定主机 SSH 端口,如不指定,默认为 22 端口

root@localhost ~]# ssh stu@192.168.71.128
# 连接到自己本机上面的 ssh 服务
The authenticity of host '192.168.71.128 (192.168.71.128)' can't be established.
# 首次连接主机时会提醒用户确认主机的身份
RSA key fingerprint is 42:d6:82:81:5d:20:2e:d3:c8:9b:09:e4:91:c1:6f:f4.
#通过主机 RSA 公钥生成的主机指纹
Are you sure you want to continue connecting (yes/no)? yes
# 填入完整的 yes(而不是 y)来同意连接主机
Warning: Permanently added '192.168.71.128' (RSA) to the list of known hosts.
#记录下主机的公钥,以便于下次连接时进行指纹比对
stu@192.168.71.128's password: #输入用户口令
Last login: Fri Feb 8 16:42:44 2013 from localhost
[stu@localhost ~]$ exit #如果离开终端,要及时登出
logout
Connection to 192.168.71.128 closed.
[root@localhost ~]#

如果曾经登录过这台主机,但是又让你确认主机指纹,那么就表示主机指纹发生了变化,可能由以下 3 种情况所导致的:
A. 主机重新安装了操作系统或者重新安装了 openssh 服务器;
B. 这台主机可能有多个 IP 地址,这次登录是另外一个 IP 地址;
C. 有其他不怀好意的主机冒充我们要登录的主机,诱骗我们登录来窃取主机口令。

6 在 在 windows  上用 SSH  客户端远程登录主机

下载到 PuTTY:http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

PuTTY.exe 远程联机客户端,使用 Telnet 和 SSH 协议( 必须)
PSCP.exe SCP 客户端, 命令行下通过 SSH 拷贝文件,类似于Unix/Linux 下的 scp 命令( 可选)
PSFTP.exe SFTP 的命令行客户端,类似于 FTP 的文件传输,只不过使用的是 SSH 的 22 端口,而非 FTP 的 21 端口,类似于 Unix/Linux 下的 sftp 命令( 可选)
PuTTYtel.exe 远程联机客户端,仅仅使用 Telnet 协议( 可选)
Plink.exe 命令行工具,执行远程服务器上的命令( 可选)
Pageant.exe PuTTY、PSCP、Plink 的 SSH 认证代理,用这个可以不用每次都输入口令
PuTTYgen.exe RSA 和 DSA 密钥生成工具( 必须)

点击选择 Category 中的 SSH 选项,并选择ssh 的版本为“2” 或者“2 only”以获得更好的安全性

为解决中文显示问题,我们需要进行两项设置:

首先点击选择 Category 中的 Windows 下的 Appearance 选项,指定光标的显示方式为“Underline(下划线)”(默认为“Block(块状)”)以避免出现光标处半个中文字被遮挡的情况
还需要点击选择 Category 中的 Windows 下的 Translation 选项,在下拉框中将字符集修改为“UTF-8”(默认为 ASCII),以避免中文出现乱码

点击选择“Category”中的“Session”选项,在这里输入服务器的IP 或主机名,选择好登录协议,还有协议的端口(默认是 22 端口)。
如果希望把这次的输入保存起来,以后不需要再重新输入,就在第“Saved Session”文本框中输入好会话的名称,比如“CentOS6 64bit”,或者干脆就是主机的地址,点击保存就可以了。最后点下面的 Open 按钮,输入正确的用户名和口令,就可以登录服务器了

2.为ssh服务器配置密钥登录

 1.  禁止用户以密码身份认证方式登录

打开/etc/ssh/sshd_config 文件,#PasswordAuthentication yes #找到这一行,将 yes 改为 no

 /etc/rc.d/init.d/sshd restart #重新启动 SSH 服

2.  生成密钥

(1)以某个特定用户身份(例如 stu)登录主机。首先,主机管理员以 stu 身份登录服务器,用 ssh-keygen -t rsa 命令建立一对 rsa 密钥

stu@localhost ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
#提示正在生成一对 rsa 密钥(包含一个公钥和一个密钥)
Enter file in which to save the key (/home/stu/.ssh/id_rsa):
# 输入密钥的存放路径,按回车放置在默认路径(/home/stu/.ssh/)下
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
#两次输入私钥的口令
Your identification has been saved in /home/stu/.ssh/id_rsa.
# 生成的私钥放在 id_rsa 文件中
Your public key has been saved in /home/stu/.ssh/id_rsa.pub.
# 生成的对应公钥放在 id_rsa.pub 文件中
The key fingerprint is:
44:66:ca:88:2b:02:6b:c8:07:74:b0:83:76:16:cb:06 stu@localhost.localdomain
#密钥的指纹(就是密钥的 MD5 码)

(2)确认一下公钥与私钥的是否已经生成,并将公钥加入到 stu 用户的指定公钥文件中(默认是~/ .ssh/authorized_keys )

[stu@localhost ~]$ ls -l ./.ssh
总用量 8
-rw-------. 1 stu stu 1743 5 月 18 15:26 id_rsa
-rw-r--r--. 1 stu stu 407 5 月 18 15:26 id_rsa.pub
# 查看公钥和私钥是否生成
[stu@localhost ~]$ cat ./.ssh/id_rsa.pub >>authorized_keys
# 将公钥放入 stu 用户的密钥授权文件中
[stu@localhost ~]$ chmod 400 ./.ssh/authorized_keys
#修改密钥授权文件的读写属性为 400
[stu@localhost ~]$ rm -f ./.ssh/id_rsa.pub
#将公钥文件及时删除

3. 分发密钥并用 Linux 的 的 SSH  客户端以密钥认证的方式登录主机

dev@localhost ~] ls ~/.ssh
-rw-------. 1 dev dev 1743 5 月 18 15:26 id_rsa
# 确保私钥文件的读写权限为 600,并且从属用户 dev 本人
[dev@localhost ~]$ ssh stu@192.168.71.128
The authenticity of host '192.168.71.128 (192.168.71.128)' can't be established.
# 首次连接主机时会提醒用户确认主机的身份
RSA key fingerprint is 42:d6:82:81:5d:20:2e:d3:c8:9b:09:e4:91:c1:6f:f4.
#主机密钥指纹
Are you sure you want to continue connecting (yes/no)? yes
# 填入完整的 yes(而不是 y)来同意连接主机
Warning: Permanently added '192.168.71.128' (RSA) to the list of known hosts.
#记录下主机的指纹,以便于下次连接时进行比对
Enter passphrase for key '/home/stu/.ssh/id_rsa':
#输入密钥的口令
Last login: Sat May 18 14:58:35 2013 from 192.168.71.1
[stu@localhost ~]$

4.用 用 PuTTY  客户端 以密钥认证的方式登录主机

(1)将要转换的私钥复制到远程终端的适当位置上。运行 PuTTYGen ,出现如下窗口,点击 Load,选取服务器端生成的私钥(文件类型要选择“All Files”)

(2) 开始转换私钥,此时需要输入建立此私钥时的口令。在文本框中输入口令开始转换

(3) 如果转换成功后,会弹出转换成功的提示窗口,点击确定进入下一步

(4) 保存转换后的私钥匙到适当的位置(转换后的私钥将做为 PuTTY 登录到服务器时使用的私钥)。点击“Save private key”,并选择适当的位置保存私钥。最后,关闭 PuTTYGen,下面我们开始用 PuTTY 远程登录服务器

(5) 双击启动 PuTTY ,在左侧找到 Auth(认证方式)一项,对连接是使用的私钥进行设定,点击 Browse,选择刚刚用 PuTTYGen 转换后的私钥。

(6) 然后点击左侧的 Session,回到主机连接信息的设置,填写余下的主机信息,并保存(可参考 任务 2)最后点击“Open”登录

(7) 在弹出的登录窗口中输入的用户名,注意,在输入完用户名后,不会出现用户密码输入提示,因为在 SSH 服务器配置中我们禁止了用户通过用户密码方式的 SSH 登录。这时候会出现要求输入私钥口令的提示,这个口令就是在服务器端建立相应用户(stu)的私钥的时候设置的口令。输入私钥口令,使用私钥进行登录。





原文地址:https://www.cnblogs.com/Wang-Y/p/8464952.html