这篇文章的目标:在linux机器中配置ssh服务,通过finalshell连接虚拟机1.安装sshyuminstallopenssh-server2.更改配置vi/etc/ssh/sshd_config确认如下改动:端口22PasswordAuthentication已更改toyes3.重启服务systemctlrestartsshd4.端口转发配置右键选择虚拟机,set-network,选择网络地址转换的网卡,选择advance(高级设置),然后添加端口转发规则即可添加转发规则。需要填写三个东西,hostport,subsystemIP,subsystemsystemport的hostport可以随便写,只要不和物理机的其他端口冲突即可。子系统IP是虚拟机的IP。子系统端口加上22,因为ssh是通过22端口工作的。补充说明:假设子系统IP为192.168。56.1,那么我们需要通过192.168.56.1访问虚拟机:宿主机端口5.打开ssh工具(如finalshell)在宿主机上写入虚拟机的IP,在进入之前写入刚才设置的宿主机端口户口密码。六、附录-ssh配置文件中各字段的含义1.关于SSHServer的整体设置,包括使用的端口,以及使用的密码计算方式Port22#SSH默认使用22端口,你可以使用更多端口!#即复用端口设置项!Protocol2,1#选择的SSH协议版本可以是1或者2,#如果要同时支持两者,必须用2,1分开!#ListenAddress0.0.0.0#监听主机适配卡!比如你有两个IP,#分别是192.168.0.100和192.168.2.20,那么你只想打开192.168.0.100,可以这样写:ListenAddress192.168.0.100#只监听来自IP的SSH连接192.168.0.100。#如果不设置,所有接口默认为AcceptSSHPidFile/var/run/sshd.pid#你可以放置SSHD的PID文件!左边一栏是默认值LoginGraceTime600#当用户连接到SSH服务器时,会出现一个密码输入画面,#在这个画面中,需要多长时间才能成功连接到SSH服务器,#会断开连接!时间是秒!Compressionyes#可以使用压缩命令吗?当然?!2.解释一下主机私钥要放的文件,默认使用下面的文件即可!HostKey/etc/ssh/ssh_host_key#SSH版本1使用的私钥HostKey/etc/ssh/ssh_host_rsa_key#SSH版本2使用的RSA私钥HostKey/etc/ssh/ssh_host_dsa_key#SSH版本2使用的DSA私钥2.1关于版本1一些设置!KeyRegenerationInterval3600#从之前网上的描述可以看出,version1会使用#server的PublicKey,那么如果这个Public#Key被盗就完了?所以它需要每隔一段时间重新创建一次#!这里的时间以秒为单位!ServerKeyBits768#没错!这是服务器密钥的长度!3.关于注册文件的信息数据放置和守护进程名称!SyslogFacilityAUTH#当有人使用SSH登录系统时,SSH会记录信息#,这个信息应该记录在什么守护进程名下?#默认设置为AUTH,即/var/log/secure#里面!什么?忘记了!回到Linux基础并检查#其他可用的守护程序名称是:DAEMON,USER,AUTH,#LOCAL0,LOCAL1,LOCAL2,LOCAL3,LOCAL4,LOCAL5,LogLevelINFO#登录记录的级别!嘿嘿!任何留言!#同样的,忘记了就回去查阅吧!4.安全设置项!很重要!4.1登录设置部分PermitRootLoginno#是否允许root登录!默认允许,但建议设置为否!UserLoginno#SSH下不接受登录程序!StrictModesyes#当用户的hostkey改变时,Server将不接受连接,#可以抵抗一些木马程序!#RSAAuthenticationyes#是否使用纯RSA认证!?仅适用于版本1!PubkeyAuthenticationyes#是否允许公钥?当然是允许的!仅限版本2AuthorizedKeysFile.ssh/authorized_keys#当上面设置为使用不需要密码登录的账户时,那么??#就是该账户的存储文件的文件名!4.2认证部分RhostsAuthenticationno#本地系统不只使用.rhosts,因为只使用.rhosts太不安全了,所以这里必须设置为no!IgnoreRhostsyes#是否取消使用~/.ssh/.rhosts作为认证!当然!RhostsRSAAuthenticationno#此选项专门用于版本1,使用rhosts文件在#/etc/hosts.equiv中使用RSA计算方法进行身份验证!不要使用HostbasedAuthenticationno#这个项目与上面的类似,但是是版本2!IgnoreUserKnownHostsno#是否忽略主目录下~/.ssh/known_hosts文件中记录的主机内容#?当然也不要忽略,这里就没有了!PasswordAuthenticationyes#当然需要密码认证!所以在这里写是?!PermitEmptyPasswordsno#如果上面的项目设置为yes,最好把这一项#设置为no,这一项是否允许空密码登录!当然不是!ChallengeResponseAuthenticationyes#挑战任何密码认证!因此,login.conf#中指定的任何身份验证方法都可以应用!#PAMAuthenticationViaKbdIntyes#是否启用其他PAM模块!启用此模块将使PasswordAuthentication设置无效!4.3Kerberos相关参数设置!由于我们没有Kerberos主机,下面就不用配置了!#KerberosAuthenticationno#KerberosOrLocalPasswdyes#KerberosTicketCleanupyes#KerberosTgtPassingno4.4下面是X-Window下使用的相关设置!X11Forwardingyes#X11DisplayOffset10#X11UseLocalhostyes4.5Itemsafterlogin:PrintMotdno#登录后是否显示一些信息?比如上次登录的时间地点等等,#等等,默认是yes,但是如果为了安全,可以考虑改成no!PrintLastLogyes#显示上次登录信息!当然!默认也是yes!保持活力是#一般情况下,如果设置了此项,SSHServer会向客户端发送#KeepAlive消息,以确保两者之间的连接正常!#在这种情况下,SSH会立即知道任一端何时死亡!而不是#机器人发生!UsePrivilegeSeparationyes#用户的权限设置项!只需将其设置为是!MaxStartups10#允许同时多少个未登录的在线画面?当我们连接SSH时,#但是还没有输入密码,这就是我们所说的联机画面!#在这个连接画面中,为了保护主机,需要设置最大值。#默认最多有十个连接画面,已经建立连接的不计入这十个。4.6关于用户阻断的设置项:DenyUsers*#设置阻断的用户名,如果是所有用户,则全部#Blockit!对于部分用户,可以填写账号!比如下面的!DenyUsers测试DenyGroups测试#与DenyUsers相同!只抵挡几组!5.关于SFTP服务的设置项!子系统sftp/usr/lib/ssh/sftp-server
