网站建设好推荐,网站建设需要的服务器,wordpress链接调用,竞价排名服务配置“/etc/ssh/sshd_config”文件 “/etc/ssh/sshd_config”是OpenSSH的配置文件#xff0c;允许设置选项改变这个daemon的运行。这个文件的每一行包含“关键词#xff0d;值”的匹配#xff0c;其中“关键词”是忽略大小写的。下面列出来的是最重要的关键词#xff0… 配置“/etc/ssh/sshd_config”文件 “/etc/ssh/sshd_config”是OpenSSH的配置文件允许设置选项改变这个daemon的运行。这个文件的每一行包含“关键词值”的匹配其中“关键词”是忽略大小写的。下面列出来的是最重要的关键词用man命令查看帮助页sshd (8)可以得到详细的列表。 编辑“sshd_config”文件vi /etc/ssh/sshd_config加入或改变下面的参数# This is ssh server systemwide configuration file.Port 22ListenAddress 192.168.1.1HostKey /etc/ssh/ssh_host_keyServerKeyBits 1024LoginGraceTime 600ClientAliveInterval 300KeyRegenerationInterval 3600PermitRootLogin noIgnoreRhosts yesIgnoreUserKnownHosts yesStrictModes yesX11Forwarding noPrintMotd yesSyslogFacility AUTHLogLevel INFORhostsAuthentication noRhostsRSAAuthentication noRSAAuthentication yesPasswordAuthentication yesPermitEmptyPasswords noAllowUsers admin 下面逐行说明上面的选项设置Port 22“Port”设置sshd监听的端口号。ListenAddress 192.168.1.1“ListenAddress”设置sshd服务器绑定的IP地址。HostKey /etc/ssh/ssh_host_key“HostKey”设置包含计算机私人密匙的文件。ServerKeyBits 1024“ServerKeyBits”定义服务器密匙的位数。LoginGraceTime 600“LoginGraceTime”设置如果用户不能成功登录在切断连接之前服务器需要等待的时间以秒为单位。ClientAliveInterval 300默认为0这个参数的是意思是每5分钟服务器向客户端发一个消息用于保持连接KeyRegenerationInterval 3600“KeyRegenerationInterval”设置在多少秒之后自动重新生成服务器的密匙如果使用密匙。重新生成密匙是为了防止用盗用的密匙解密被截获的信息。PermitRootLogin no“PermitRootLogin”设置root能不能用ssh登录。这个选项一定不要设成“yes”。IgnoreRhosts yes“IgnoreRhosts”设置验证的时候是否使用“rhosts”和“shosts”文件。IgnoreUserKnownHosts yes“IgnoreUserKnownHosts”设置ssh daemon是否在进行RhostsRSAAuthentication安全验证的时候忽略用户的“$HOME/.ssh/known_hosts”StrictModes yes“StrictModes”设置ssh在接收登录请求之前是否检查用户家目录和rhosts文件的权限和所有权。这通常是必要的因为新手经常会把自己的目录和文件设成任何人都有写权限。X11Forwarding no“X11Forwarding”设置是否允许X11转发。PrintMotd yes“PrintMotd”设置sshd是否在用户登录的时候显示“/etc/motd”中的信息。SyslogFacility AUTH“SyslogFacility”设置在记录来自sshd的消息的时候是否给出“facility code”。LogLevel INFO“LogLevel”设置记录sshd日志消息的层次。INFO是一个好的选择。查看sshd的man帮助页已获取更多的信息。RhostsAuthentication no“RhostsAuthentication”设置只用rhosts或“/etc/hosts.equiv”进行安全验证是否已经足够了。RhostsRSAAuthentication no“RhostsRSA”设置是否允许用rhosts或“/etc/hosts.equiv”加上RSA进行安全验证。RSAAuthentication yes“RSAAuthentication”设置是否允许只有RSA安全验证。PasswordAuthentication yes“PasswordAuthentication”设置是否允许口令验证。PermitEmptyPasswords no“PermitEmptyPasswords”设置是否允许用口令为空的帐号登录。AllowUsers admin “AllowUsers”的后面可以跟着任意的数量的用户名的匹配串patterns或userhost这样的匹配串这些字符串用空格隔开。主机名可以是DNS名或IP地址。使用SFTP代替FTP传输文件 FTP(文件传输协议)是一种使用非常广泛的在网络中传输文件的方式但是它也同样存在被网络窃听的危险因为它也是以明文传送用户认证信息。其实在SSH软件包中已经包含了一个叫作SFTP(Secure FTP)的安全文件传输子系统SFTP本身没有单独的守护进程它必须使用sshd守护进程端口号默认是22来完成相应的连接操作所以从某种意义上来说SFTP并不像一个服务器程序而更像是一个客户端程序。SFTP同样是使用加密传输认证信息和传输的数据所以使用SFTP是非常安全的。但是由于这种传输方式使用了加密/解密技术所以传输效率比普通的FTP要低得多如果您对网络安全性要求更高时可以使用SFTP代替FTP。若要开启 SFTP功能可以修改sshd2_config文件的下列内容 # subsystem-sftp sftp-server 去掉行首的“#”然后重新启动SSH服务器这样在进行SSH连接时就可以同时使用SFTP传输文件。 关于客户端设置 以上是对服务器的设置其实在SSH服务器中已经包含了一些客户端工具如SSH,SFTP工具。但是更多的客户端用户使用Windows系统下面就对Windows上的客户端系统设置加以说明。 首先从上文给出的网址下载“SSHSecureShellClient-3.2.3.exe”文件并安装。安装完成后在桌面上会产成两个快捷方式一个是“SSH Secure Shell Client”用于远程管理另一个是“SSH Secure File Transfer Client”用于和服务器进行文件传输。在工具栏中点击“quick connnect”输入正确的主机名和用户名然后在弹出的对话框中输入密码完成登录即可开始执行命令或者传输文件。在使用SFTP时默认只能显示用户的宿主目录的内容和非隐藏文件。但是有时候您可能还要查看其它目录或者隐藏文件这时只需要在菜单“eidt-setting- file transfer”的选项中选中“show root directory”和“show hidden file”两个选项即可。 使普通用户仅使用SFTP而没有使用Shell的权限默认情况下管理员给系统添加的账号将同时具有SFTP和SSH的权限。让普通用户使用shell执行命令也是有很大的安全隐患的如果能够禁止用户使用shell执行命令而仅使用SFTP传输文件就能消除这种安全隐患完全实现FTP的功能正如上文所述SFTP没有单独的守护进程只能借助于sshd守护进程所以我们仍然需要使用SSH服务器要保证sshd守护进程处于运行状态。具体实现方法如下首先在编译安装时编译中一定要有“--enable-static” 选项。安装成功后在安装目录下的bin目录中执行下面的命令[rootlocalhost bin]# ls -l ssh-dummy-shell* sftp-server2* 将看到下列输出内容-rwxr-xr-x 1 root root 1350417 Apr 28 16:30 sftp-server2-rwxr-xr-x 1 root root 3566890 Apr 28 16:30 sftp-server2.static-rwxr-xr-x 1 root root 72388 Apr 28 16:30 ssh-dummy-shell-rwxr-xr-x 1 root root 1813412 Apr 28 16:30 ssh-dummy-shell.static 其中带“static”后缀名且比较大的两个文件就是加上“--enable-static”选项后生成的后面我们将用到这里两个文件。 下面以添加普通账号test为例讲述具体操作步骤。 1在“/home”目录或者将要存放普通用户宿主目录的目录下创建“bin”子目录并将两个static文件复制到此目录下复制后改名去掉static后缀执行如下命令[rootlocalhost bin]# cd /usr/local/ssh3.2/bin[rootlocalhost bin]#cp ssh-dummy-shell.static /home/bin/ssh-dummy-shell[rootlocalhost bin]# cp sftp-server2.static /home/bin/sftp-server[rootlocalhost bin]#chown -R root.root /home/bin[rootlocalhost bin]#chmod -R 755 /home/bin 2添加一个组使以后所有禁止使用shell的用户都属于这个组这样便于管理更多的用户[rootlocalhost bin]#groupadd template 3在添加系统账号时使用如下命令[rootlocalhost root]#useradd -s /bin/ssh-dummy-shell -g template test[rootlocalhost root]#passwd test[rootlocalhost root]#mkdir /home/test/bin[rootlocalhost root]#cd /home/test/bin[rootlocalhost bin]#ln /home/bin/ssh-dummy-shell ssh-dummy-shell[rootlocalhost bin]#ln /home/bin/sftp-server sftp-server[rootlocalhost bin]#chown -R root.root /home/test/bin[rootlocalhost bin]#chmod -R 755 /home/test/bin 4用户添加成功后还需要修改/etc/ssh2/sshd2_config文件将下列内容#ChRootGroups sftp,guest改为ChRootGroups sftp,guest,template 修改上面这行内容主要是为了禁止普通用户查看系统的其它目录把其权限限制在自己的主目录下。重新启动SSH服务器程序在客户端使用SSH Secure File Transfer Client登录即使选择显示根目录普通用户也看不到其它的任何目录而是把自己的主目录当作根目录。注意这里使用的是按用户所属组限制这样可以使包含在template组内的所有用户都可以实现此功能。若您只要限制个别用户的话可以修改下面的内容#ChRootUsers anonymous,ftp,guest 事实证明SSH是一种非常好的网络安全解决方案但是目前仍有很多管理员使用Telnet或FTP这种非常不安全的工具希望尽快转移到SSH上来以减少网络安全隐患。 转载于:https://blog.51cto.com/9237101/1907424