ubuntu配置ssh server的详细步骤
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上来,以减少网络安全隐患。
ssh服务器的安装(Windows)。
ssh服务器软件有许多中,这里使用的是免费的freeSSHd。
①首先从官方站点下载软件并安装。
②安装完成后进入配置界面(Server Status),确认SSH server正在运行状态。
③进入Users界面,设定一个访问的用户账户(比如xut)。
这里建立一个叫xut的用户,认证有3种方式可以选择。从以后通过ssh运行命令的方便(无需输入密码)考虑,选择Public key认证方式。选择Password方式的话,每次访问需要输入密码,此种方式较为繁琐而且安全性不高。然后开放其Shell权限。
④ 进入认证界面,确认Public key认证方式属于激活状态(选择Allowed或Required)。
此时ssh服务器端的基本设置已经OK,可进一步进行更加详细的设置(比如访问限定等)。
注意:服务器端如果有防护墙时应该开发TCP 22号端口最为ssh连接使用。
您好,方法
首先打开windows设置。
如图点击应用。
如图点击管理可选功能。
点击Openssh服务器。
安装中,等待即可。
openssh安装成功,启用后可以对此电脑进行ssh远程。
SSH作为Linux远程连接重要的方式,如何配置安装linux系统的SSH服务,如何开启SSH?下面来看看吧(本例为centos系统演示如何开启SSH服务)
工具/原料
linux centos
查询\安装SSH服务
1登陆linux系统,打开终端命令。输入 rpm -qa |grep ssh 查找当前系统是否已经安装
2如果没有安装SSH软件包,可以通过yum 或rpm安装包进行安装(具体就不截图了)
启动SSH服务2
安装好了之后,就开启ssh服务。Ssh服务一般叫做 SSHD
命令行输入 service sshd start 可以启动
或者使用 /etc/initd/sshd start
配置\查看SSHD端口3
查看或编辑SSH服务配置文件,如 vi /etc/ssh/sshdconfig
如果要修改端口,把 port 后面默认的22端口改成别的端口即可(注意前面的#号要去掉)
远程连接SSH4
如果需要远程连接SSH,需要把22端口在防火墙上开放。
关闭防火墙,或者设置22端口例外
出自:http://jingyanbaiducom/article/08b6a591f0fafc14a9092275html
Linux中rz和sz命令用法详解?
linux的rz/sz指令是上传、下载文件指令。一般需要服务器先安装好响应的包才能用。
1、安装lrzsz的包:yuminstalllrzsz;如果没有yum,可以到安装盘的pakage里找到lrzsz的包,放到服务器里进行安装。
2、安装好后,运行rz进行上传文件测试;sz文件名进行下载测试。学习linux基本命令,推荐《linux就该这么学》!
redhat怎么安装配置rzsz?
需要安装rzsz,安装命令如下:yuminstall-ylrzsz安装完成后即可使用,以下为命令说明:sz命令用途说明:sz命令是利用ZModem协议来从Linux服务器传送文件到本地,一次可以传送一个或多个文件。相对应的从本地上传文件到Linux服务器,可以使用rz命令。常用参数-a以文本方式传输(ascii)。-b以二进制方式传输(binary)。-e对控制字符转义(escape),这可以保证文件传输正确。如果能够确定所传输的文件是文本格式的,使用sz-afiles如果是二进制文件,使用sz-befilesrz命令-b以二进制方式,默认为文本方式。(Binary(tellitlikeitis)filetransferoverride)-e对所有控制字符转义。(Forcesendertoescapeallcontrolcharacters;normallyXON,XOFF,DLE,CR-@-CR,andCtrl-Xareescaped)如果要保证上传的文件内容在服务器端保存之后与原始文件一致,最好同时设置这两个标志,如下所示方式使用:rz-be此命令执行时,会弹出文件选择对话框,选择好需要上传的文件之后,点确定,就可以开始上传的过程了。上传的速度取决于当时网络的状况。如果执行完毕显示“0错误”,文件上传就成功了,其他显示则表示文件上传出现问题了。
如何给远程服务器传文件linux?
1、使用rz和sz命令:rz是从linux端接收windows数据,sz是linux端发送数据到windows端;rz和sz使用ZModem协议进行文件传输。有点是操作简单。
2、在windows下使用winscp进行数据上传。winscp是一个Windows环境下支持SFTP,SCP以及FTP的开源图形化客户端。它可以完成本地与linux远程主机间安全的复制文件。
有点是可视化,多文件操作,绿色开源。
如何在Linux中使用rz/sz工具进行文件传输?
一般来说,linux服务器大多是通过ssh客户端来进行远程的登陆和管理的,使用ssh登陆linux主机以后,如何能够快速的和本地机器进行文件的交互呢,也就是上传和下载文件到服务器和本地;与ssh有关的两个命令可以提供很方便的操作:sz:将选定的文件发送(send)到本地机器rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器(receive)rz,sz是便是Linux/Unix同Windows进行ZModem文件传输的命令行工具windows端需要支持ZModem的telnet/ssh客户端(比如SecureCRT)运行命令rz,即是接收文件,SecureCRT就会弹出文件选择对话框,选好文件之后关闭对话框,文件就会上传到当前目录注意:单独用rz会有两个问题:上传中断、上传文件变化(md5不同),解决办法是上传是用rz-be,并且去掉弹出的对话框中“UploadfilesasASCII”前的勾选。-bbinary用binary的方式上传下载,不解释字符为ascii-e强制escape所有控制字符,比如Ctrl+x,DEL等运行命令szfile1file2就是发文件到windows上(保存的目录是可以配置)比ftp命令方便多了,而且服务器不用再开FTP服务了PS:Linux上rz/sz这两个小工具安装lrzsz-xxxxrpm即可。当然,还可以设置一下目录了:在SecureCRT设置一下上传和下载的默认目录options_》sessionoptions_》filetransfer下可以设置上传和下载的目录剩下的你只要在用SecureCRT登陆linux终端的时候:发送文件到客户端:szfilenamezmodem接收可以自行启动。从客户端上传文件到linux服务端:只要服务端执行:rz然后在SecureCRT里选文件发送,协议zmodemLinux下和Windows之间的文件传输工具rz/sz(lrz/lsz)介绍什么是rz/sz(lsz/lrz)简单说就是,可以很方便地用这两个sz/rz工具,实现Linux下和Windows之间的文件传输(发送和接收),速度大概为10KB/s,适合中小文件。rz/sz通过Zmodem协议传输数据。为什么要用rz/sz普通Linux和Windows之间的文件共享方法,主要有建立nfs实现文件共享,和tftp之类的方法,但是都很麻烦,而如果只是小文件(几十K,几百K),那么直接用rz/sz,就显得极其地方便了。大文件的话,还是要考虑上面说得,其他的共享方法了,毕竟,rz/sz速度只有10K左右,传大文件会累死人的
怎么把本地文件传到linux虚拟机?
先安装rzsz工具。
yum-yinstalllrzsz
然后就有了上传rz,和下载sz工具了。
然后使用rz回车,会弹出来上传对话框,把你本地电脑上路径下的文件选中,确认就上传到当前linux目录下了。
反过来下载linux文件到本地,使用sz就可以。
在linux的路径下找到要下载的文件,使用命令sz+文件名,回车就下载到默认下载路径C盘的download下,这个路径可以修改。
OPENSSH的安装和配置
一、 概述
传统的远程网络访问服务在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,很容易被截获,其安全验证方式也容受到中间人的攻击。通过使用OPENSSH,你可以把所有传输的数据进行加密。
SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1x和2x。它需要不同的客户端。OPENSSH同时支持SSH1和SSH2。
二、 OPENSSH的安全验证方式
OPENSSH提供两种级别的验证方式:
1、 基于口令的安全验证:只要你知道服务器上的帐号和口令,那么你可以登录到远程主机上。口令和数据在传输过程中都会被加密。
2、 基于密钥的安全验证:采用此方式验证你必须在远程服务器上为自己创建一对密钥(不对称密钥对),把公有密钥放在远程服务器上自己的宿主目录中。而私有密钥则由自己保存。
三、 所需软件
openssl-095atargz 下载网址:http://wwwopensslorg
openssh-252p2targz 下载网址:http://wwwopensshorg
四、 安装步骤
下面的安装选项根据你自己的情况可适当调整,如果有不明白的地方可以参考README、INSTALL文档。此文环境假定所有源文件都在/var/tmp下:
4. 1安装OPENSSL
[root@mail tmp]tar xzpf openssl-095atargz
[root@mail tmp]cd openssl-095a
[root@mail openssl-095a]/config –t
[root@mail openssl-095a]/config --prefix=/usr --openssldir=/etc/ssl
编辑Makefilessl文件更改MANDIR=$OPENSSL/man为MANDIR=/usr/man。
[root@mail openssl-095a]make
[root@mail openssl-095a]make test
[root@mail openssl-095a]make install
[root@mail openssl-095a]cd
[root@mail tmp]rm –rf openssl
4.2 安装OPENSSH
在安装OPENSSL之前确认你的系统中已安装了zlib库,可用下面的命令来检查一下,若没有不要的犹豫,它就在你的系统安装光盘中,马上安装吧!
[root@mail tmp]rpm –qi zlib
[root@mail tmp]tar xzpf openssh-252p2targz
[root@mail openssh-252p2]/configure /
--prefix=/usr /
--sysconfdir=/etc/ssh /
--with-tcp-wrappers /
--with-ipv4-default /
--with-ssl-dir=/usr/include/openssl
[root@mail openssh-252p2]make
[root@mail openssh-252p2]make install
[root@mail openssh-252p2]install –m 644 contrib/redhat/sshdpam /
/etc/pamd/sshd
[root@mail openssh-252p2]cd
[root@mail tmp]rm –rf openssh
五、 配置OPENSSH
5.1 在inetd服务器中起动SSHD守护程序只需加入下面一行(建议在起动TELNET守护程序这一行更改,以完全代替TELNET):
ssh stream tcp nowait root /usr/sbin/tcpd sshd –I
5.2 SSH客户端配置文件/etc/ssh/ssh_config,一般情况下我们在多使用WINDOWS平台的客户端,此配置文件只有客户端不指定任何参数的情况下才使用,其内容如下:
# $OpenBSD: ssh_config,v 19 2001/03/10 12:53:51 deraadt Exp $
Host
ForwardAgent no
ForwardX11 no
RhostsAuthentication no
RhostsRSAAuthentication yes
RSAAuthentication yes
PasswordAuthentication no
FallBackToRsh no
UseRsh no
BatchMode no
CheckHostIP yes
StrictHostKeyChecking yes
IdentityFile ~/ssh/identity
IdentityFile ~/ssh/id_dsa
IdentityFile ~/ssh/id_rsa1
IdentityFile ~/ssh/id_rsa2
Port 22
Protocol 2,1
Cipher blowfish
EscapeChar ~
5.3 SSH服务器端配置文件/etc/ssh/sshd_config,关于下面各个参数的含义请参考使用手册,此例中使用第二种认证方式(基于密钥的认证)以提高安全性。
# $OpenBSD: sshd_config,v 134 2001/02/24 10:37:26 deraadt Exp $
Port 22
#Protocol 2,1
#ListenAddress 0000
#ListenAddress ::
HostKey /etc/ssh/ssh_host_key
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
ServerKeyBits 768
LoginGraceTime 600
KeyRegenerationInterval 3600
PermitRootLogin without-password
#
# Don't read ~/rhosts and ~/shosts files
IgnoreRhosts yes
# Uncomment if you don't trust ~/ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes
StrictModes yes
X11Forwarding no
X11DisplayOffset 10
PrintMotd yes
KeepAlive yes
# Logging
SyslogFacility AUTH
LogLevel INFO
#obsoletes QuietMode and FascistLogging
RhostsAuthentication no
#
# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
RhostsRSAAuthentication no
#
RSAAuthentication yes
# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
PermitEmptyPasswords no
# Comment to enable s/key passwords or PAM interactive authentication
# NB Neither of these are compiled in by default Please read the
# notes in the sshd(8) manpage before enabling this on a PAM system
ChallengeResponseAuthentication no
# To change Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#AFSTokenPassing no
#KerberosTicketCleanup no
# Kerberos TGT Passing does only work with the AFS kaserver
#KerberosTgtPassing yes
#CheckMail yes
#UseLogin no
#MaxStartups 10:30:60
#Banner /etc/issuenet
#ReverseMappingCheck yes
#Subsystem sftp /usr/libexec/sftp-server
六、 生成认证密钥
当采用密钥认证方式时,第个用户在远程服务器上必须生成自己的密钥;下面我们就以实例的方式叙述此过程:
6.1为服务器上的用户robin生成rsa1认证密钥:
[root@mail tmp]su robin
[root@mail tmp]ssh-keygen
此命令运行时将会提示你密钥的存放位置,直接回车;在提示你输入passphrase时建议你输入一个不短于10个字符的英文句子,以防止你的私有密钥被别人盗用。它会在当前用户的个人目录个生成两个文件:
~/ssh/identify robin的私有密钥
~/ssh/identifypub robin的公用密钥
6.2不要忘记idnentifypub更名:
[root@mail ssh]mv identifypub authorized_keys
6.3 拷贝文件到安全的地方,在服务器上你的宿主文件夹中删除identify文件。
七、 使用PuTTY客户端登录
终于到检验我们工作结果的时候了,在WINDOWS平台的SSH客户端我推荐使用Putty,很好用,不像其它一些客户端只支持基于口令的安全验证;你可以在这里下载:
http://wwwchiarkgreenendorguk/~sgtatham/puttyhtml.
在连接服务器时不要忘记在connect-SSH中指定你的私有密钥的存放位置,输入创建密钥时的passphrase,如果不出意外你就可以安全地行程控制你的服务器了。
1 ssh简介以及本例的应用场景
① ssh的简介
SSH是一个用来替代TELNET、FTP以及R命令的工具包,主要是想解决口令在网上明文传输的问题。为了系统安全和用户自身的权益,推广SSH是必要的。 SSH是英文Secure Shell的简写形式。通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。
② 本例的应用场景
用户在client(Linux)上通过ssh远程执行server(Windows)上的命令,比如c:\testbat
注:Linux版自带ssh Server且默认启动,具体设置方法请参见google。
2 ssh服务器的安装(Windows)
ssh服务器软件有许多中,我们这里使用的是免费的freeSSHd。
① 首先从官方站点下载软件并安装(http://wwwfreesshdcom/)
② 安装完成后进入配置界面(Server Status),确认SSH server正在运行状态
③ 进入Users界面,设定一个访问的用户账户(比如xut)
这里我们建立一个叫xut的用户,认证有3种方式可以选择。从以后通过ssh运行命令的方便(无需输入密码)考虑,我们选择Public key认证方式。选择Password方式的话,每次访问需要输入密码,此种方式较为繁琐而且安全性不高。然后开放其Shell权限。
④ 进入认证界面,确认Public key认证方式属于激活状态(选择Allowed或Required)
此时ssh服务器端的基本设置已经OK,可进一步进行更加详细的设置(比如访问限定等),此处不再介绍。
注意:服务器端如果有防护墙时应该开发TCP 22号端口最为ssh连接使用。
3 ssh客户端的设置(Linux)
由于我们的客户端采用的是Linux,所以不用安装客户端软件,系统自带的就有。
我们需要在Linux上创建一个共有和私有的密钥对,私有密钥放到客户端(Linux)上,共有密钥放到服务器端(Windows)上。在Linux上通过ssh-keygen命令来创建。
[root@localhost ~]# ssh-keygen -t rsa
Generating public/private rsa key pair
Enter file in which to save the key (/root/ssh/id_rsa): [直接回车]
Enter passphrase (empty for no passphrase): [直接回车]
Enter same passphrase again: [直接回车]
Your identification has been saved in /root/ssh/id_rsa
Your public key has been saved in /root/ssh/id_rsapub
The key fingerprint is:
4d:dd:48:af:76:c2:ba:a8:bc:20:f3:28:1d:6a:28:53
其中,/root/ssh/id_rsa为私有密钥,/root/ssh/id_rsapub为共有的密钥。
此时,需要把共有密钥放到服务器端(Windows)进行保存,以便于服务器端进行安全检查。
我们通过认证界面找到存放共有密钥的地址(Public key folder)。
如上图所示,然后在c:\Program Files\freeSSHd目录下创建以登录用户名为名字的文本文件,此处举例为xut文件。并将/root/ssh/id_rsapub文件中的内容拷贝到c:\Program Files\freeSSHd\xut文件中。
至此,客户端和服务器端的密钥设置已经完成,可以通过如下命令进行远程的命令执行。
ssh xut@17228xxxxx "c:\testbat"
这条命令将执行服务器端的C盘下的testbat文件,并把结果返回,整个操作不需输入密码。
4 ssh客户端的设置(Windows)
由于Windows不附带ssh的客户端和服务器端,我们这里找一个免费的客户端软件PuTTY。
PuttY主页:http://wwwchiarkgreenendorguk/~sgtatham/putty/
各种客户端的比较:http://enwikipediaorg/wiki/Comparison_of_SSH_clients
在Putty主页,我们下载puttyzip(含除了PuTTYtel以外的所有文件),然后解压会发现一个叫plinkexe的文件,这就是我们的ssh客户端命令行软件。
我们首先要成一个共有和私有的密钥对,使用puttyzip中附带的PUTTYGENexe生成。
启动PUTTYGENexe后可以见到下图界面,点击[Generate]即可生成所需密钥对。
注意:由于是采用随机算法生成,需要不停地在对话框上移动鼠标进度条才会增加,否则将保持不变。
鼠标在这里不停移动
密钥生成完毕后,可以把私有密钥进行保存,为了登录简单起见不对私钥进行加密,提示没有passphrase选择忽略即可。假设我们这里把私钥保存为pri_keyppk。
我们把公钥放在freeSSHd端(ssh服务器端)进行保存,具体保存方法参见ssh客户端的设置(Linux)。
在Windows客户端,执行如下命令进行ssh连接,并不需要输入密码即可通过密钥进行自动认证。
plink -i pri_keyppk xut@17228xxxxx c:\testbat
(此时将执行服务器端的c:\testbat脚本。)
注:第一次连接时将出现“The server's host key is not cached in the registry…
1、如何查看linux操作系统版本
打开linux终端命令行,输入如下命令即可。lsb_release-a。采用的是实体机服务器,操作系统为redhat67,详细请看下图。
2、如何查看SSH服务是否已经安装
在终端命令行执行。rpm-qa|grep\"ssh\"。执行结果请看下图,说明已经安装;其实在安装linux操作系统的时候默认就会安装上的。
3、如果SSH服务没有安装怎么办
找到操作系统镜像文件解压,找到ssh相关的包,上传到服务器。然后执行如下安装命令安装即可。rpm-ivhrpm包名。如果服务器挂载了镜像,可以直接采用如下命令安装也可以。yuminstallssh。这里因为我的linux服务器已经安装SSH,就不在做安装操作了。
4、如何启动SSH服务
启动命令,servicesshdstart。停止命令,servicesshdstop。重启命令,servicesshdrestart。首先我们来看看SSH服务是否启动了,请执行如下命令即可,servicesshdstatus。如果想重新启动一下,可以执行重启命令,servicesshdrestart。具体执行情况请看下图。
5、怎么查看SSH端口是多少
执行如下命令,more/etc/ssh/sshd_config。就可以查看到有说明,默认端口为22,具体。另外端口是可以修改的。
6、如何配置开启SSH服务,有两种方案
1、关闭防火墙执行如下命令,serviceiptablesstop
2、就是放开22端口,vi/etc/sysconfig/iptables,在iptables文件中加上这一行即可,-AINPUT-mstate--stateNEW-mtcp-ptcp--dport22-jACCEPT。请看下图操作所示。
0条评论