ssh简介与使用,第1张

使用SSH的优点:

1)利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题,也能够防止DNS欺骗和IP欺骗。

2)使用SSH传输的数据是经过压缩的,所以可以加快传输的速度 。

但并不是说SSH就是绝对安全的,因为它本身提供两种级别的验证方法:

第一种级别(基于口令的安全验证):只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人攻击”这种方式的攻击。

第二种级别(基于密钥的安全验证):你必须为自己创建一对密钥,并把公钥放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密钥进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公钥,然后把它和你发送过来的公钥进行比较。如果两个密钥一致,服务器就用公钥加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私钥在本地解密再把它发送给服务器完成登录。与第一种级别相比,第二种级别不仅加密所有传输的数据,也不需要在网络上传送口令,因此安全性更高,可以有效防止中间人攻击。

1在客户端(本地)生成密钥对

密钥锁码在使用私钥时必须输入,这样就可以保护私钥不被盗用。当然,也可以留空,实现无密码登录,这里密钥锁码设置为空。完成上述步骤后,在 root 用户的家目录中生成了一个 ssh 的隐藏目录,内含两个密钥文件,其中id_rsa 为私钥,id_rsapub 为公钥。

1、首先在计算机上进行安装ssh_scan工具,通过三种方式可以进行安装,第一种采用Ruby gem工具进行安装,输入安装执行命令就可以进行安装。

2、接着第二种采用docker容器进行运行安装,容器在很多经验中已经简单介绍过了,第三种方法就是采用最原始的代码进行安装运行。

3、然后安装成功之后进行调试,是否安装成功,进行扫描服务器的SSH配置和策略,同时进行展示给-T选项传入的一个IP地址。

4、接着使用-p选项来指定不同的端口,-L选项来开启日志记录配合-V选项来指定日志级别,进行使用SSH配置和策略。

5、而后可以使用-P选项或--policy选项来指定一个策略文件,在这里默认是Mozilla Modern头文件,指定进行输出显示文件。

一、配置PIX来接受SSH连接步骤1:为PIX防火墙分配主机名和域名。要产生RSA密钥集,这是必需的。Pixfirewall(config)#hostname PercivalPercival(config)#domain-name cisco/pub/ssh/。步骤1:启动SSH客户端软件。步骤3:在左边画面的“Profile Setting”下面的列表中,点击Connection(连接)选项。在Host Name(主机名)字段中输入PIX防火墙的IP地址。在User Name(用户名)的字段中输入pix。此主题相关如下:步骤4:在左边画面的“Profile Setting”下面的列表中,点击Authentication(认证)选项。在Authentication Methods(认证方法)窗格中,点击Password(口令)。此主题相关如下:步骤5:在左边画面的“Profile Setting”下面的列表中,点击Cipher List(加密列表)。除了我们将要使用的加密方法以外,去掉对所有其他加密方法的选择。虽然SSH客户端支持很多种加密方法,但是PIX防火墙只支持DES和3DES算法。在本例我们选择DES算法。一旦选择了加密算法,就使用黑色的向上箭头将我们首选的加密方法移动到列表的顶端。步骤6:为了避免在我们每次启动SSH客户端时都要输入这些信息,从File(文件)菜单中选择Save Setting(保存设置)。此主题相关如下:步骤7:通过点击Quick Connection(快速连接)按钮,打开弹出式登录窗口。此主题相关如下:步骤8:如果这是我们第一次用SSH连接到PIX防火墙,我们必须相互交换公钥来对会话进行加密。SSH客户端将提示我们接受PIX公钥。点击YES(是)按钮,将PIX防火墙的公钥保存到本地数据库中。步骤9:在我们保存了PIX防火墙的公钥之后,我们的SSH客户端将提示我们输入Telnet口令。此主题相关如下:步骤10:至此我们完成了所有配置。我们已经创建了一条到PIX防火墙的安全连接。现在我们可以通过这条SSH连接,执行任何配置和常规的维护工作。步骤2:从“编辑”菜单中选择Setting(设置)。

Windows提供了一些远程管理功能,像使用Windows PowerShell,ServerManagerexe,或一个telnet服务器,但它并没有提供原生的SSH(安全外壳)或Secure FTP访问。

  不过,好消息是它是相当容易成立SSH和安全FTP(SFTP)服务器,让您可以安全地访问命令提示符和文件的电脑或远程服务器示例使用的情况下,包括故障排除,维修,或转移/共享文件,当你走出办公室。你甚至可以决定设置它做SSH隧道,以确保你的Wi-Fi流量使用热点时。

  虽然有很多SSH和SFTP服务器可供选择,在这里我们将讨论freeSSHd以下。freeSSH中是一个SSH和Telnet服务器,支持普通的shell或命令行SSH访问,基于SSH的SFTP访问(使用命令行或GUI客户端),基于SSH隧道(***一样的功能)。

  freeSSH中很容易通过一个典型的Windows安装程序安装。做虽然确保创建上面的安装结束时,因为它们所需的加密的私钥。

  配置服务器

  一旦你打开freeSSHd以下,你会发现一个系统托盘图标,你可以单击“打开服务器设置。如果你没有在安装过程中创建的私钥SSH选项卡并单击“新建”的关键()。否则,你应该做的,为了获得服务器运行的是创建一些用户通过点击“用户”选项卡。

 为了使你的SSH服务器更加安全,考虑强迫用户进行身份验证,通过自己的密码加上一个私钥,他们必须在他们的PC连接时,在他们的客户端程序配置。

  如果你知道将远程连接到服务器 - 如果它总是会从另一间办公室,有一个静态IP,例如 - 你也可以考虑远程IP地址白名单,以提高服务器的安全性。要做到这一点,只需点击“主机限制”选项卡,并输入IP地址。

  如果您打算使用SFTP连接来传输文件,单击SFTP选项卡,为用户指定一个默认路径。

  测试服务器

  在打开你的防火墙上的SSH端口,可以测试服务器从客户端程序连接同一台PC上使用本地主机的主机地址或IP地址的PC。您可以使用标准的SSH和SFTP客户端,如腻子,WinSCP赋予或FileZilla的。

  打开防火墙

  为了从其他电脑SSH端口22必须打开Windows防火墙或任何其他你可能已经安装了个人防火墙访问SSH服务器。您可能已提醒有关允许或禁止访问,当你第一次运行freeSSH中。如果没有,你就无法通过SSH连接其他电脑,仔细检查防火墙的设置。

  如果你打算通过互联网连接到SSH服务器,路由器和网络PC连接必须被配置为允许访问。在路由器中,您可以使用虚拟服务器或端口转发设置打开SSH端口22和前瞻性的PC主机的SSH服务器的IP地址的流量。

直接使用Linux系 统的root帐户登录系统,在很多环境下是不允许。而且如果网络中的所有机器都能使用ssh登录关键服务器也是不允许的。这就要求我们需要使用一些手段, 现在root帐号的登录,而且是只有指定的几台机器才能登录。当然限制登录的ip这些通过网络设备也恩那个完成。但是我们只需要了解怎么使用系统自己的功 能实现,这是每一个系统管理员都比较了解的。

1,修改ssh的配置文件,是root用户只能通过本地登录,不能通过远程ssh连接服务器。

vim /etc/ssh/sshd_config,

把#PermitRootLogin yes改成

PermitRootLogin no,然后重启ssh服务器,root用户就不能通过ssh远程登录系统了,只能通过一个普通帐号su或者本地登录。

2,可以同修改其他系统配置文件,使之能通过几个指定的IP远程ssh登录服务器。把下面这段放到root的bash_profile文件中

ALLOWHOSTSLIST="1921681631"

REMOTEHOST=$(env | grep SSH_CLIENT | awk '{print $1}' | awk -F "=" '{print $2}')

if echo "${ALLOWHOSTSLIST}" | grep "${REMOTEHOST}" > /dev/null

then :

else

exit

fi

结果就只能通过IP地址是1921681631这台服务器通过ssh远程连接本服务器了。

3,可以把需要ssh远程服务器的IP地址添加到/etc/hostsallow,例如下面的操作:

sshd:1921681631:allow #只允许这个IP地址ssh登录

sshd:192168163:allow #允许这个网段的所有IP地址ssh登录

sshd:all:deny #拒绝所有没有出现在上面的IP地址的ssh连接

4,也可以使用iptables指定能够远程ssh到服务器的IP地址

iptables -A INPUT -p tcp --dport 22 -s 1921681631 -j ACCEPT #允许这个IP地址ssh连接本服务器

iptables -A INPUT -p tcp --dport 22 -s 1921681630/24 -j ACCEPT #允许这个网段的所有IP远程ssh连接本服务器

iptables -A INPUT -p tcp --dport 22 -j DROP #除了上面允许的IP地址外,都拒绝使用ssh连接到服务器

Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络 操作系统 。有用户想要在Linux上搭建vps这篇 文章 主要介绍了实例讲解搭建Linux系统的VPS的步骤,包括防火墙和SSH等基本软件的部署 方法 ,非常细致,需要的朋友可以参考下

 前期准备

需要购买一台拥有 root 权限的 VPS ,我选择的是 搬瓦工 ,当时购买的是 512 M 内存 5 G SSD,500 G 流量/月, 999 刀每年,但是好像现在这种低价套餐已经结束了。有意的朋友可以看一下其他的套餐或者别的公司的 VPS。有的朋友说 DigitalOcean 的速度非常快,看YouTube直接 1440p,但是我还没测试过,目前搬瓦工的速度能满足我的需求,而且 DO 的价格比较昂贵。

服务器购买后,安装 CentOS7,因为以下教程都是基于 CentOS7 的,安装新的 OS 后,搬瓦工会告诉你 SSH 的端口和 root 的密码,这些是自己无法自定义的,要记住了如果实在忘了也可以重置 root 密码,或者直接使用搬瓦工提供的在线SSH登录来操作也可,就是反应比较慢,所以我们以后还是常用 ssh 登录来配置 VPS ,Mac 下直接使用终端就好,win 下自行寻找一个 ssh 工具就好。

 登录 ssh 的命令:

复制代码代码如下:

$ ssh -p vps 端 口号 root@vpsIP 地址

登录上以后就相当于在本地操作一样了,你可以使用各种 Linux 命令来操作了。

配置防火墙

如果 SSH 无法登录,那说明防火墙关闭了 SSH 端口,需要通过在线 SSH 登录进去关闭防火墙重新配置。

清除防火墙配置

复制代码代码如下:

$ iptables -F

清除 iptabels 所有表项,同时 nat 设置也没了,但是我们后续的脚本里会配置的,不用担心。如果 SSH 登录正常就不用管防火墙。

安装 firewalld

复制代码代码如下:

$ yum install firewalld firewall-config

$ systemctl start firewalld

PS 我在安装完 firewalld 之后然后启动服务的时候一直显示失败,然后重启了一遍服务器就可以正常的启动 firewalld 服务了,有类似情况的朋友可以重启一下服务器。

修改 SSH 端口

复制代码代码如下:

$ vi /usr/lib/firewalld/services/sshxml

会出现以下的内容:

复制代码代码如下:

SSH

Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines It provides secure encrypted communications If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option You need the openssh-server package installed for this option to be useful

将 port=”22”,修改成搬瓦工提供给你的端口号,然后重载 firewalld 就 OK。

vi 的命令: 按 “i” 是编辑模式,编辑后按 “esc” 退出编辑模式,然后按 Shift 输入“:” 和 “wq” 保存退出 vi。

复制代码代码如下:

$ firewall-cmd --permanent --add-service=ssh

$ firewall-cmd --reload

OK,现在准备工作都已就绪,安装了源,安装配置了防火墙,下一步开始搭建服务了。

搭建 Shadowsocks 服务

这个服务是最简单也是最常用的。

安装组件

复制代码代码如下:

$ yum install m2crypto python-setuptools

$ easy_install pip

$ pip install shadowsocks

安装时部分组件需要输入 Y 确认。小内存 VPS 可以分别安装组件。

安装完成后配置服务器参数

复制代码代码如下:

$ vi /etc/shadowsocksjson

写入如下配置:

复制代码代码如下:

{

"server":"0000",

"server_port":8388,

"local_address": "127001",

"local_port":1080,

"password":"mypassword",

"timeout":300,

"method":"aes-256-cfb",

"fast_open": false,

"workers": 1

}

将上面的 mypassword 替换成你的密码, server_port 也是可以修改的,例如 443 是 Shadowsocks 客户端默认的端口号。

如果需要修改端口,需要在防火墙里打开响应的端口,用 firewalld 操作就比较简单了:

复制代码代码如下:

$ vi /usr/lib/firewalld/services/ssxml

下面代码粘贴到里面:

复制代码代码如下:

SS

Shadowsocks port

保存退出,然后重启 firewalld 服务:

复制代码代码如下:

$ firewall-cmd --permanent --add-service=ss

$ firewall-cmd --reload

运行命令,启动 Shadowsocks 服务

运行下面的命令:

复制代码代码如下:

$ ssserver -c /etc/shadowsocksjson

至此 shadowsocks 搭建完成,shadowsocks 已经可以使用,如果你没有过高的要求,下面的步骤可以省略,下面是后台运行 Shadowsocks 的步骤。

安装 supervisor 实现后台运行

运行以下命令下载 supervisor:

复制代码代码如下:

$ yum install python-setuptools

$ easy_install supervisor

然后创建配置文件:

复制代码代码如下:

$ echo_supervisord_conf > /etc/supervisordconf

修改配置文件:

复制代码代码如下:

$ vi /etc/supervisordconf

在文件末尾添加:

复制代码代码如下:

[program:ssserver]command = ssserver -c /etc/shadowsocksjson

autostart=true

autorestart=true

startsecs=3

设置 supervisord 开机启动,编辑启动文件:

复制代码代码如下:

$ vi /etc/rclocal

在末尾另起一行添加:

复制代码代码如下:

$ supervisord

保存退出(和上文类似)。另 centOS7 还需要为 rclocal 添加执行权限:

复制代码代码如下:

$ chmod +x /etc/rclocal

至此运用 supervisord 控制 Shadowsocks 开机自启和后台运行设置完成。重启服务器即可。

搭建 Strongswan 实现在 iOS 上连接 ***

 补充:Linux基本命令

1ls命令:

格式::ls [选项] [目录或文件]

功能:对于目录,列出该目录下的所有子目录与文件;对于文件,列出文件名以及其他信息。

常用选项:

-a :列出目录下的所有文件,包括以 开头的隐含文件。

-d :将目录像文件一样显示,而不是显示其他文件。

-i :输出文件的i节点的索引信息。

-k :以k字节的形式表示文件的大小。

-l :列出文件的详细信息。

-n :用数字的UID,GID代替名称。

-F : 在每个文件名后面附上一个字符以说明该文件的类型,“”表示可执行的普通文 件;“/”表示目录;“@”表示符号链接;“l”表示FIFOS;“=”表示套接字。

2cd命令

格式:cd [目录名称]

常用选项:

cd 返回上一级目录。

cd / 将当前目录向上移动两级。

cd - 返回最近访问目录。

3pwd命令

格式: pwd

功能:显示出当前工作目录的绝对路径。

 相关阅读:Linux主要特性

完全兼容POSIX10标准

这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。

多用户、多任务

Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。

良好的界面

Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。

支持多种平台

Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux 24版内核已经能够完全支持Intel 64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。

搭建Linux系统的VPS的步骤相关文章:

1 Linux VPS中使用Crontab实现定时重启任务

2 Linux系统怎么用命令释放内存

3 Linux服务器上的PPTP 搭建方法有哪些

4 VPS怎么设置安全配置

5 Linux查看操作系统安装时间的方法总结

一般发行版默认安装、开启。

没装的话使用自带的包管理器装openssh,然后/etc/initd/sshd start,这个是最简单的

然后本地用户即可登陆

其他设置依照发行版会有些变化。

SSH-Server配置指南

一、SSH简介

SSH (Secure Shell)是一个应用程序中提供安全通信的协议,通过SSH协议可以安全地访问服务器,因为SSH 具有成熟的公钥加密体系,在数据进行传输时进行加密,保证数据在传输时不被恶意篡改、破坏和泄露,能有效防止网络嗅探和IP欺骗等攻击。

二、服务器端Ubuntu平台下OpenSSH server的安装

SSH是由芬兰的一家公司开发的,但是因为受版权和加密算法的限制,现在很多人都转而使用OpenSSH。OpenSSH是SSH的替代软件,而且是免费的。

下以命令均是以管理员身份登录使用

1.   在Ubuntu终端使用apt命令

复制代码

   

代码如下:

# apt-get install openssh-server

如果下载失败,可能是由于系统需要更新的缘故,尝试更新一下,就可以了。使用一下命令:

复制代码

   

代码如下:

# apt-get update

2  配置openssh server,可以按照需求修改配置文件

复制代码

   

代码如下:

# vi etc/ssh/ssh_config

3. 重启服务器

复制代码

   

代码如下:

# /etc/initd/ssh restart

以上OpenSSH server就算安装完成。

配置“/etc/ssh/ssh_config”文件

“/etc/ssh/ssh_config” 文件是OpenSSH系统范围的配置文件,允许你通过设置不同的选项来改变客户端程序的运行方式。这个文件的每一行

包含“关键词-值”的匹配,其中“关键词”是忽略大小写的。下面列出来的是最重要的关键词,用man命令查看帮助页(ssh (1))可以得到

详细的列表。

编辑“ssh_config”文件(vi /etc/ssh/ssh_config),添加或改变下面的参数:

复制代码

   

代码如下:

# Site-wide defaults for various options

   Host

   ForwardAgent no

   ForwardX11 no

   RhostsAuthentication no

   RhostsRSAAuthentication no

   RSAAuthentication yes

   PasswordAuthentication yes

   FallBackToRsh no

   UseRsh no

   BatchMode no

   CheckHostIP yes

   StrictHostKeyChecking no

   IdentityFile ~/ssh/identity

   Port 22

   Cipher blowfish

   EscapeChar ~

下面逐行说明上面的选项设置:

Host

   选项“Host”只对能够匹配后面字串的计算机有效。“”表示所有的计算机。

ForwardAgent no

   “ForwardAgent”设置连接是否经过验证代理(如果存在)转发给远程计算机。

ForwardX11 no

   “ForwardX11”设置X11连接是否被自动重定向到安全的通道和显示集(DISPLAY set)。

RhostsAuthentication no

   “RhostsAuthentication”设置是否使用基于rhosts的安全验证。

RhostsRSAAuthentication no

   “RhostsRSAAuthentication”设置是否使用用RSA算法的基于rhosts的安全验证。

RSAAuthentication yes

   “RSAAuthentication”设置是否使用RSA算法进行安全验证。

PasswordAuthentication yes

   “PasswordAuthentication”设置是否使用口令验证。

FallBackToRsh no

   “FallBackToRsh”设置如果用ssh连接出现错误是否自动使用rsh。

UseRsh no

   “UseRsh”设置是否在这台计算机上使用“rlogin/rsh”。

BatchMode no

   “BatchMode”如果设为“yes”,passphrase/password(交互式输入口令)的提示将被禁止。当不能交互式输入口令的时候,这个选项对脚本

文件和批处理任务十分有用。

CheckHostIP yes

   “CheckHostIP”设置ssh是否查看连接到服务器的主机的IP地址以防止DNS欺骗。建议设置为“yes”。

StrictHostKeyChecking no

   “StrictHostKeyChecking”如果设置成“yes”,ssh就不会自动把计算机的密匙加入“$HOME/ssh/known_hosts”文件,并且一旦计算机的密

匙发生了变化,就拒绝连接。

IdentityFile ~/ssh/identity

   “IdentityFile”设置从哪个文件读取用户的RSA安全验证标识。

Port 22

   “Port”设置连接到远程主机的端口。

Cipher blowfish

   “Cipher”设置加密用的密码。

EscapeChar ~

   “EscapeChar”设置escape字符。

配置“/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 22

   ListenAddress 19216811

   HostKey /etc/ssh/ssh_host_key

   ServerKeyBits 1024

   LoginGraceTime 600

   KeyRegenerationInterval 3600

   PermitRootLogin no

   IgnoreRhosts yes

   IgnoreUserKnownHosts yes

   StrictModes yes

   X11Forwarding no

   PrintMotd yes

   SyslogFacility AUTH

   LogLevel INFO

   RhostsAuthentication no

   RhostsRSAAuthentication no

   RSAAuthentication yes

   PasswordAuthentication yes

   PermitEmptyPasswords no

   AllowUsers admin

下面逐行说明上面的选项设置:

Port 22

   “Port”设置sshd监听的端口号。

ListenAddress 19216811

   “ListenAddress”设置sshd服务器绑定的IP地址。

HostKey /etc/ssh/ssh_host_key

“HostKey”设置包含计算机私人密匙的文件。

ServerKeyBits 1024

   “ServerKeyBits”定义服务器密匙的位数。

LoginGraceTime 600

   “LoginGraceTime”设置如果用户不能成功登录,在切断连接之前服务器需要等待的时间(以秒为单位)。

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/hostsequiv”进行安全验证是否已经足够了。

RhostsRSAAuthentication no

   “RhostsRSA”设置是否允许用rhosts或“/etc/hostsequiv”加上RSA进行安全验证。

RSAAuthentication yes

   “RSAAuthentication”设置是否允许只有RSA安全验证。

PasswordAuthentication yes

   “PasswordAuthentication”设置是否允许口令验证。

PermitEmptyPasswords no

   “PermitEmptyPasswords”设置是否允许用口令为空的帐号登录。

AllowUsers admin

   “AllowUsers”的后面可以跟着任意的数量的用户名的匹配串(patterns)或user@host这样的匹配串,这些字符串用空格隔开。主机名可以是

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-323exe”文件并安装。安装完成后,在桌面上会产成两个快捷方式,一个是“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目录中执行下面的命令:

复制代码

   

代码如下:

[root@localhost 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-server2static

   -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-shellstatic

其中带“static”后缀名,且比较大的两个文件就是加上“–enable-static”选项后生成的,后面我们将用到这里两个文件。

下面以添加普通账号test为例讲述具体操作步骤。

1.在“/home”目录(或者将要存放普通用户宿主目录的目录)下创建“bin”子目录,并将两个static文件复制到此目录下(复制后改名去掉static后缀),执行如下命令:

复制代码

   

代码如下:

[root@localhost bin]# cd /usr/local/ssh32/bin

   [root@localhost bin]#cp ssh-dummy-shellstatic /home/bin/ssh-dummy-shell

   [root@localhost bin]# cp sftp-server2static /home/bin/sftp-server

   [root@localhost bin]#chown -R rootroot /home/bin

   [root@localhost bin]#chmod -R 755 /home/bin

2.添加一个组,使以后所有禁止使用shell的用户都属于这个组,这样便于管理更多的用户:

   [root@localhost bin]#groupadd template

3.在添加系统账号时使用如下命令:

复制代码

   

代码如下:

[root@localhost root]#useradd -s /bin/ssh-dummy-shell -g template test

   [root@localhost root]#passwd test

   [root@localhost root]#mkdir /home/test/bin

   [root@localhost root]#cd /home/test/bin

   [root@localhost bin]#ln /home/bin/ssh-dummy-shell ssh-dummy-shell

   [root@localhost bin]#ln /home/bin/sftp-server sftp-server

   [root@localhost bin]#chown -R rootroot /home/test/bin

   [root@localhost bin]#chmod -R 755 /home/test/bin

3.用户添加成功后,还需要修改/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上来,以减少网络安全隐患。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » ssh简介与使用

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情