SHH的配置文件在/etc/ssh/sshd_config 用任何一种文本编辑工具可以对其修改 我还是习惯用vi,虽然老是抱怨不好用
[root@centos ~]# vi /etc/ssh/sshd_config 这儿就是就vi打开shh的配置文件,接下来就是有个比较常用的选项:
一、Protoco
l 这是设置使用shh协议的版本的,未修改前是#Protocol 2,1 一般只用第二版所以改成Protocol
2 注意前面那个注释符号#,加上#这条设置就不起作用。
二、ServerKeyBits 设置加密级别,数字越大越安全。一般为ServerKeyBits 1024
三、PermitRootLogin 设置是否允许root登录 后面跟yes 或者no 为了安全还是no吧。
四、PasswordAuthentication 设置是否使用密码登录 同样后面跟yes 或者no
五、PermitEmptyPasswords 设置是否使用空密码登录 后面跟yes 或者no
一般来说比较常用的就这么几个,另外还有两个文件值得注意:/etc/hosts.deny 和/etc/hosts.allow
hosts.deny 是屏蔽规则的配置文件 相反hosts.allow 是允许的规则的配置文件,如果你只允许部分ip通过shh登录的话,这两个文件就有用了。
首先是hosts.deny,用vi编辑它在里面加入 sshd: ALL。修改好后内容如下:
#
# hosts.deny This file describes the names of the hosts which are
# *not* allowed to use the local INET services, as decided
# by the '/usr/sbin/tcpd' server.
#
# The portmap line is redundant, but it is left to remind you that
# the new secure portmap uses hosts.deny and hosts.allow. In particular
# you should know that NFS uses portmap!
sshd: ALL
加入的内容的意思就是屏蔽所有的连接。
接下来的工作就是加如允许的ip段,不然全都屏蔽了那还有什么用?
编辑hosts.allow在里面加入 sshd: 后面跟允许的ip段。例如一个只配置好的hosts.allow如下:
#
# hosts.allow This file describes the names of the hosts which are
# allowed to use the local INET services, as decided
# by the '/usr/sbin/tcpd' server.
#
sshd: 192.168.0.
这样只要重启shh服务之后配置就能生效了,重启shh的方法:
[root@sample ~]# /etc/rc.d/init.d/sshd restart ← 重新启动SSH服务器
Stopping sshd: [ OK ]
Starting sshd: [ OK ] ← SSH服务器重新启动成功
另:如果你PasswordAuthentication 设置为no,这就说明你不使用密码登录而是使用密匙文件来验证登录,那这样就需要配置公钥与私钥。
要使用哪个用户来ssh登录就在哪个用户下来配置公钥与私钥。
具体命令为:ssh-keygen -t rsa 一个具体的例子如下:
[centospub@sample ~]$ ssh-keygen -t rsa ← 建立公钥与私钥
Generating public/private rsa key pair.
Enter file in which to save the key (/home/kaz/.ssh/id_rsa): ← 钥匙的文件名,保持默认可直接回车
Created directory '/home/kaz/.ssh'
Enter passphrase (empty for no passphrase): ← 输入口令
Enter same passphrase again: ← 再次输入口令
Your identification has been saved in /home/kaz/.ssh/id_rsa.
Your public key has been saved in /home/kaz/.ssh/id_rsa.pub.
The key fingerprint is:
tf:rs:e3:7s:28:59:5s:93:fe:33:84:01:cj:65:3b:8e
centospub@sample.centospub.com
注:绿色是需要输入的地方,蓝色为系统自动生成的,红色为你输入的内容
这用我们就生成了公钥与私钥,不过还没完还有几步。
必须把公钥内容输出到相应文件中,不然咱们就白费力气了,具体如下:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
然后chmod 400 ~/.ssh/authorized_keys 至于生成的那个公钥文件你自己看着办,删不删除都可以,为了安全还是删了好。下面是一个实例:
centospub@sample ~]$ cd ~/.ssh ← 进入用户SSH配置文件的目录
[centospub@sample .ssh]$ ls -l ← 列出文件
total 16
-rw------- 1 centospub centospub 951 Sep 4 19:22 id_rsa ← 确认私钥已被建立
-rw-r--r-- 1 centospub centospub 241 Sep 4 19:22 id_rsa.pub ← 确认公钥已被建立
[centospub@sample .ssh]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys ← 公钥内容输出到相应文件中
[centospub@sample .ssh]$ rm -f ~/.ssh/id_rsa.pub ← 删除原来的公钥文件
[centospub@sample .ssh]$ chmod 400 ~/.ssh/authorized_keys ← 将新建立的公钥文件属性设置为400
然后,将私钥通过安全的方式转移到欲通过SSH连接到服务器的PC上就大工告成!