linux 服务器使用什么ssh软件
一、安装ssh
ssh软件由两部分组成:ssh服务端和ssh客户端。
ssh的配置文件在/etc/ssh/目录下,其中服务端的配置文件是sshd_config,客户端的配置文件是ssh_config
安装ssh,在这里,只讲述通过yum安装的方法(前提是你的yum源配置正确,并且能使用):
# yum install openssh- -y
//yum会自动安装所有openssh相关的软件包
二、配置ssh服务器
根据ssh的两种验证方式,配置两种不能安全级别的登录方式。
·通过口令验证方式登录
1用vim编辑器打开sshd_config配置文件
# vim /etc/ssh/sshd_config
2对配置文件进行如下修改(根据自身实际情况可有所调整):
Port 22 //默认使用22端口,也可以自行修改为其他端口,但登录时要打上端口号
#ListenAddress //指定提供ssh服务的IP,这里我注释掉。
PermitRootLogin //禁止以root远程登录
PasswordAuthentication yes //启用口令验证方式
PermitEmptyPassword //禁止使用空密码登录
LoginGraceTime 1m //重复验证时间为1分钟
MaxAuthTimes 3 //最大重试验证次数
保存修改好的配置,退出。
3重启sshd服务
# service sshd restart
LinuxSuse93如何配置ssh服务?
suselinux查看ssh服务的方法查询安装SSH服务1登陆linux系统,打开终端命令。输入rpm-qa|grepssh查找当前系统是否已经安装2如果没有安装SSH软件包,可以通过yum或rpm安装包进行安装(具体就不截图了)启动SSH服务2安装好了之后,就开启ssh服务。Ssh服务一般叫做SSHD命令行输入servicesshdstart可以启动或者使用/etc/initd/sshdstart配置查看SSHD端口3查看或编辑SSH服务配置文件,如vi/etc/ssh/sshdconfig如果要修改端口,把port后面默认的22端口改成别的端口即可(注意前面的#号要去掉)远程连接SSH4如果需要远程连接SSH,需要把22端口在防火墙上开放。关闭防火墙,或者设置22端口例外
如何配置ssh客户端,怎么ssh连接Linux服务器?
在Linuxe服务器上开启远程和端口。内网的话直接用地址加端口即可连接。外网需要做端口映射。
1开启ssh(secureshell)服务(我的是linuxubuntu1010),当然在开启ssh服务之前,需要下载相关得软件,使用下面得命令即可:sudoapt-getinstallssh然后进入/etc/initd输入命令:sudoservicesshstart开启ssh服务使用netstat-tln查看ssh服务是否已经打开(ssh服务默认使用22端口)若要关闭ssh服务时,使用:sudoservicesshstop即可关闭ssh服务
2在客户端(widnows主机)上下载ssh客户端putty,填写linux服务器ip,sessionname然后保存,打开,输入用户名,和密码,那么就登录成功了
在Linux系统下使用SSH实现端口映射的方法?
从技术角度来分析,几个要求:
1、从安全方面看,sftp会更安全一点
2、线上服务器提供在线服务,对用户需要控制,只能让用户在自己的home目录下活动
3、用户只能使用sftp,不能ssh到机器进行操作
提供sftp服务,可以用系统自带的internal-sftp,也可以使用vsftpd,这里需求不多,直接选用internal-sftp。
限制用户只能在自己的home目录下活动,这里需要使用到chroot,openssh48p1以后都支持chroot,我现在用的是centos63,自带的openssh已经是53p1,足够了。
可以输入:
#ssh-v
来查看openssh的版本,如果低于48p1,需要自行升级安装,不在这里具体介绍了。
假设,有一个名为sftp的组,这个组中的用户只能使用sftp,不能使用ssh,且sftp登录后只能在自己的home目录下活动
1、创建sftp组
#groupaddsftp
2、创建一个sftp用户,名为mysftp
#useradd-gsftp-s/bin/falsemysftp
#passwdmysftp
3、sftp组的用户的home目录统一指定到/data/sftp下,按用户名区分,这里先新建一个mysftp目录,然后指定mysftp的home为/data/sftp/mysftp
#mkdir-p/data/sftp/mysftp
#usermod-d/data/sftp/mysftpmysftp
4、配置sshd_config
编辑/etc/ssh/sshd_config
#vim+132/etc/ssh/sshd_config
找到如下这行,并注释掉
subsystemsftp/usr/libexec/openssh/sftp-server
添加如下几行
subsystemsftpinternal-sftp
matchgroupsftp
chrootdirectory/data/sftp/%u
forcecommandinternal-sftp
allowtcpforwardingno
x11forwardingno
解释一下添加的几行的意思
subsystemsftpinternal-sftp
这行指定使用sftp服务使用系统自带的internal-sftp
matchgroupsftp
这行用来匹配sftp组的用户,如果要匹配多个组,多个组之间用逗号分割
当然,也可以匹配用户
matchusermysftp
这样就可以匹配用户了,多个用户名之间也是用逗号分割,但我们这里按组匹配更灵活和方便
chrootdirectory/data/sftp/%u
用chroot将用户的根目录指定到/data/sftp/%u,%u代表用户名,这样用户就只能在/data/sftp/%u下活动,chroot的含义,可以参考这里:http://wwwibmcom/developerworks/cn/linux/l-cn-chroot/
forcecommandinternal-sftp
指定sftp命令
allowtcpforwardingno
x11forwardingno
这两行,如果不希望该用户能使用端口转发的话就加上,否则删掉
5、设定chroot目录权限
#chownroot:sftp/data/sftp/mysftp
#chmod755/data/sftp/mysftp
错误的目录权限设定会导致在log中出现”fatal:badownershipormodesforchrootdirectoryxxxxxx”的内容
目录的权限设定有两个要点:
1、由chrootdirectory指定的目录开始一直往上到系统根目录为止的目录拥有者都只能是root
2、由chrootdirectory指定的目录开始一直往上到系统根目录为止都不可以具有群组写入权限
所以遵循以上两个原则
1)我们将/data/sftp/mysftp的所有者设置为了root,所有组设置为sftp
2)我们将/data/sftp/mysftp的权限设置为755,所有者root有写入权限,而所有组sftp无写入权限
6、建立sftp用户登入后可写入的目录
照上面设置后,在重启sshd服务后,用户mysftp已经可以登录,但使用chroot指定根目录后,根应该是无法写入的,所以要新建一个目录供mysftp上传文件。这个目录所有者为mysftp,所有组为sftp,所有者有写入权限,而所有组无写入权限
#mkdir/data/sftp/mysftp/upload
#chownmysftp:sftp/data/sftp/mysftp/upload
#chmod755/data/sftp/mysftp/upload
7、重启sshd服务
#servicesshdrestart
到这里,mysftp已经可以通过sftp客户端登录并可以上传文件到upload目录。
如果还是不能在此目录下上传文件,提示没有权限,检查selinux是否关闭,可以使用如下指令关闭selinux
修改/etc/selinux/config文件中的selinux=""为disabled,然后重启。或者
#setenforce0
Linux服务器之间怎么样SSH不需密码?
ssh-keygen可以用来生成private和public密钥将生成的public密钥拷贝到远程机器后,可以使ssh到另外一台机器的登陆不用密码具体方法如下
1)在本地机器中的~/ssh/目录下执行下命令,ssh-keygen-tdsa将生成两个文件,id_dsa和id_dsapub
2)将id_dsapub拷贝到远程机器,并且将id_dsapub的内容添加到~/ssh/authorized_keys中catid_dsapub>>authorized_keys注意:目录ssh和文件authorized_keys的权限必须是600完成这些工作后,用户从本地机器到远程机器的登录就不用密码了
linux如何修改默认SSH端口?
ssh服务器软件配置文件在/etc/ssh/目录下步骤如下1进入到此目录#cd/etc/ssh2编辑其配置文件sshd_config#vimsshd_config3在里边找到一行#Port22此行很靠前,几乎就在文件的开头处不远,将此行的#号去掉然后就是后边加你想要改成为的端口号我这里就改成了2343Port23434重新启动sshd服务#servicdsshdrestart5到此ssh端口更改为2343注意连接ssh时要相应更改端口号如ssh192168111222343
一,使用SSH2协议
如果要用SSH2协议,需要修改一下 /etc/ssh/ssh_config 文件,把#Protocol 2,1 这一行前面的#字符去掉,默认也是先是ssh2,
再是ssh1,实际上不除去#注释也是可以的。
用puttygenexe生成SSH2协议格式的密匙(操作方法同上),上传到ssh/authorized_keys文件时,需作如下修改,
因为puttygenexe和bsd/Linux生成的SSH2密匙格式不一样。
例如puttygenexe生成的公匙是id_rsa2pub
[root@mail ssh]# cat id_rsa2pub
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20050328"
AAAAB3NzaC1yc2EAAAABJQAAAIEAtZgDykOOegKu6sCGzxpzA2CwB5o2X37FM4lg
41LXw3DR2/7+aBQNYDez3BWkGIluyfuyWYlw21bEzUiJhJ9/8tX5FUJLBYr/ELtq
jI08dfhHaRjVM8cRQX7fv6jCNIuyEKlml9QuFdIOIX3bS5dkAHkk9GKMgaMISK44
zB4qUfM=
---- END SSH2 PUBLIC KEY ----
而BSD/Linux生成的ssh2格式是
[root@linuxwht ssh]# cat id_rsapub
ssh-rsa AAAB3NzaC1yc2EAAAABIwAAAIEAsD4qEibcK1e9ZgFX6bahxnU/It5MjC/7U56n
OOZ0MDf+LHU7bWo3M6XH/mp1KeTRrHIPtmEl2PTkf9/3NffNtBdAkSJ/sWoPoaeJlShcvK2
wzOsrre4FyJRRUtl2jdCDJxRX0Cu2GV/aNphVQoAuU0lj7/55eladpO8/jr14adE=
所以照着Linux默认的格式改一下就可以了。
如果没有 puttygenexe,那么可以用 bsd/linux 自带的 ssh-keygen 生成密匙,命令格式如下:
ssh-keygen -b 密匙长度 -t 密匙类型
密匙类型可以是:rsa1 (对应SSH1 RSA)、rsa 和 dsa (对应SSH2)
如:ssh-keygen –b 1024 –t rsa
默认是生成的~/ssh/id_rsa文件。
不过 ssh-keygen 生成的SSH2密匙和putty的密匙格式不同,无法直接使用,必须用 puttygenexe 转换一下。
所以大家还是用 rsa1 好了,反正一般用途也没什么区别。
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…
0条评论