sshd服务基本配置和使用(201610改)

一、基于密钥认证的服务端基本安全设置:
1、修改/etc/ssh/sshd_config,具体如下:
Protocol 2  #只支持SSH2协议
Port <端口号>  #修改默认端口号
MaxStartups 5    #同时允许5个尚未登录的SSH联机
MaxAuthTries 3   #最大登录尝试次数为3

GSSAPIAuthentication no  #关闭GSSAPI认证
ServerKeyBits 1024  #将ServerKey强度改为1024比特
PermitEmptyPasswords no  #禁止空密码进行登录
ChallengeResponseAuthentication no #禁用s/key密码
UsePAM no  #不通过PAM验证
PermitRootLogin no #禁止root远程登录
PasswordAuthentication no  #不允许密码方式的登录
RSAAuthentication no #不允许RSA认证,只针对SSH1
PubkeyAuthentication yes #允许公钥认证
AuthorizedKeysFile .ssh/authorized_keys #保存公钥的认证文件
UsePrivilegeSeparation yes    #用户权限设置

SyslogFacility AUTH    #记录SSH登录情况
LogLevel INFO    #记录等级为INFO

PrintMotd yes    #登录成功后显示/etc/motd 文件的内容
PrintLastLog no    #不显示上次登录信息
Compression yes  #是否压缩命令
KeepAlive yes    #防止死连接
StrictModes yes    #接受连接请求前对用户主目录和相关的配置文件进行宿主和权限检查
UseDNS no  #不使用DNS反解

AllowUsers <用户名>  #允许通过远程访问的用户,多个用户以空格分隔
AllowGroups <组名>  #允许通过远程访问的组,多个组以空格分隔
DenyUsers <用户名>  #禁止通过远程访问的用户,多个用户以空格分隔
DenyGroups <组名>  #禁止通过远程访问的组,多个组以空格分隔

2、如果需要限制来路IP的话,可以修改/etc/hosts.deny和/etc/hosts.allow两个文件,通过添加sshd:<IP地址或IP段>来限制或允许SSH远程链接IP。

3、密钥设置
A、用打算通过SSH登录的帐号登录系统,创建密钥对
ssh-keygen -b 1024 -t rsa
当要求输入passphrase密钥保护时,建议不要默认为空。

B、进入此用户的 .ssh目录,将生成的公钥文件(默认为id_rsa.pub)内容添加到与sshd_config中AuthorizedKeysFile设置项一样的文件(authorized_keys)中,并删除id_rsa.pub。
cat id_rsa.pub >>authorized_keys;rm -f id_rsa.pub

C、更改.ssh目录的权限为700,authorized_keys文件的权限为600。

D、私钥口令修改
ssh-keygen -p -P <旧私钥口令> -N <新私钥口令> -f <私钥文件路径>

二、基于密钥认证的客户端连接
linux:将私钥文件id_rsa拷贝到客户端<home>/.ssh/目录(你也可以CP到任何其他什么地方)中,重新命名,并设置权限chmod 600 <home>/.ssh/<PrivateKeyFileName>。
通过命令ssh -i ~/.ssh/<PrivateKeyFileName> <username>@<remote IP>登录远程机。
ssh客户端在登陆服务端时,会把对应的公钥写入~/.ssh/known_hosts文件。如果密钥发生改变,则将~/.ssh/known_hosts文件中对应的一行公钥删除,才能用新的私钥登录。

PUTTY:将私钥文件id_rsa拷贝到客户端,通过PUTTYGEN转换RSA密钥,保存私钥为ppk格式,最后通过密钥认证即可登录远程系统。

SecureCRT:将私钥文件id_rsa拷贝到客户端,在连接选项里把authentication的验证顺序中的PublicKey放到最先的位置,打开PublicKey验证的properties页,identity file选择id_rsa。

三、scp的使用
scp <源主机用户名>@<源主机名>:<源文件或目录路径,多个文件以空格分隔> <目标主机用户名>@<目标主机名>:<目标文件或目录路径>
如果源为本机的话,则只需要列出文件或目录路径即可。
常用参数 :
-v 显示进度
-C 压缩传输选项
-P 指定端口
-4 强行使用 IPV4 地址
-6 强行使用 IPV6 地址
-i 指定私钥文件路径
-r 遍历路径复制
-l 限制最大传输带宽,单位是Kb/s

四、sftp配置
1、使用ssh -v确定软件版本
openssh版本不低于4.8sp1
openssl版本不低于0.9.6
否则到官网下载最新版,卸载本机ssh后重新安装,此时要切记如果是远程操作的话应该切换至telnet!
#备份配置文件
cp /etc/ssh/sshd_config ~/sshd_conf

#获取最新的openssh源码
wget http://openbsd.org.ar/pub/OpenBSD/OpenSSH/portable/openssh-6.1p1.tar.gz

#查询系统中ssh相关软件包,并卸载
rpm -qa |grep ssh
rpm -e openssh-4.3p2-82.el5 --nodeps
rpm -e openssh-server-4.3p2-82.el5
rpm -e openssh-clients-4.3p2-82.el5 --nodeps

#解压下载的压缩包,并安装
tar zxvf openssh-6.1p1.tar.gz
cd openssh-6.1p1
./configure --prefix=/usr/local/ssh --sysconfdir=/etc/ssh --with-pam --with-zlib --with-ssl-dir=/usr/local/ssl --with-md5-passwords --mandir=/usr/share/man
make
make install
#确认ssh安装成功
ssh -v

#重建ssh服务运行环境
cp ~/sshd_config /etc/ssh/sshd_config
cp /usr/local/ssh/bin/* /usr/bin/
cp /usr/local/ssh/sbin/* /usr/sbin/
cp ./contrib/redhat/sshd.init /etc/init.d/sshd
chmod +x /etc/init.d/sshd
chkconfig --add sshd
chkconfig --level 2345 sshd on

#确认服务配置正常
chkconfig --list

#启动ssh服务
/etc/init.d/sshd start

全部完成后,建议重启系统。

2、创建sftp伪根目录,确保所有者为root
例如:
mkdir /home/sftp
chown root /home/sftp

3、在系统中添加用户,可以不建home,设置密码。为了方便管理可以添加一个sftp组,将sftp登录用户集中管理。
例如:
groupadd sftp
useradd -g sftp -M user1

4、在/home/sftp下创建用户目录,确保所有者为对应用户,并根据实际情况设置此目录权限。
例如:
mkdir /home/sftp/user1
chown user1:sftp /home/sftp/user1
chmod 700 /home/sftp/user1

5、编辑/etc/ssh/sshd_config,具体如下:
注释 Subsystem sftp /usr/lib/openssh/sftp-server
添加 Subsystem sftp internal-sftp
在配置文件末尾加入针对登录用户或sftp组的访问限制
例如:
#sftp组成员登录后,chroot到与用户名同名的sftp下属目录
Match group sftp
     ChrootDirectory /home/sftp/%u

#user1登录后,chroot到/home/sftp/user1目录
Match user user1
     ChrootDirectory /home/sftp/user1

6、采用ChrootDirectory设置需要注意
ChrootDirectory设置的目录及其所有的上级目录属主必须是root且只有属主能拥有写权限,也就是说权限最大设置只能是755。否则会报“fatal: bad ownership or modes for chroot directory”这样的错误。
用户目录下的链接文件失去作用。

五、SSH客户端保持连接的设置

方法1:服务端配置

编辑服务端/etc/ssh/sshd_config文件,添加如下配置命令:

ClientAliveInterval 60    #每60秒向客户端发送一次确认心跳包
ClientAliveCountMax 3    #当客户端失去响应超过3次,则踢出客户端

方法2:客户端配置(推荐)

编辑客户端/etc/ssh/ssh_config文件或~/.ssh/ssh_config文件,添加如下配置命令:

TCPKeepAlive yes    #保持连接
ServerAliveInterval 60    #每60秒发送一次心跳包

方法3:命令行配置

针对某个特定连接,可以在ssh命令行中加入配置选项,以保持连接。

ssh -o TCPKeepAlive=yes -o ServerAliveInterval=60

注意:
如果更改了SSH服务端口后,无法登录系统报“no route to host”错。请检查iptables的过滤策略,允许基于新端口的访问。

时间: 2024-10-15 13:16:29

sshd服务基本配置和使用(201610改)的相关文章

Xshell使用技巧及sshd服务基本配置和使用

一.帐号密码保存.可以保存多个vps登陆信息,免去每次输入的烦恼. 二.数字小键盘输入.如果不设置的话,输入数字小键盘,会显示乱码.如图设置即可: 三.设置文字颜色.如图设置,就可以得到像黑客帝国那样绿色的文字,在你编译软件的时候,是不是恍然若见那华丽丽的数字瀑布? 四.设置命令快捷按钮当你管理多个vps或者经常操作vps的时候,不得不重复输入相同的命令,xshell可以设置快捷按钮,一键输入你设置的命令. 分享几条常用命令:下载使用本博编写的damnp一键包,并优化系统:wget http:/

远程控制服务:配置sshd服务,密钥验证登陆

配置sshd服务 1.概述: SSH(Secure Shell)是一种能够以安全的方式提供远程登录的协议,也是目前远程管理 Linux 系统的首选方式.在此之前,一般使用 FTP 或 Telnet 来进行远程登录.但是因为它们 以明文的形式在网络中传输账户密码和数据信息,因此很不安全,很容易受到黑客发起的中 间人攻击,这轻则篡改传输的数据信息,重则直接抓取服务器的账户密码. 想要使用 SSH协议来远程管理Linux系统,则需要部署配置sshd 服务程序.sshd是基于SSH 协议开发的一款远程管

配置sshd服务的安全密钥验证方式

sshd服务有两种登陆验证方式:口令验证--用账户和密码来验证登陆:密钥验证--分为公钥和私钥,客户端通过私钥连接服务器,服务器通过公钥来匹配客户端的私钥,匹配成功则允许登陆.实验环境:服务器:192.168.2.211 Centos 7客户端:192.168.2.208 Centos 7生成密钥对有两种方法:(1)客户端生成密钥对,然后通过ssh-copy-id <服务器IP>命令将公钥上传到服务器上.(2)服务端生成密钥对,然后将私钥拷贝到客户端机器上.第1步:在服务端主机中生成"

docker配置sshd服务

启动一个centos服务 [email protected]:/data# docker run --privileged -itd --name centos_lnmp1.14 -p 8088:80 -p 33006:3306 centos /usr/sbin/init [email protected]:/data# docker exec -it 97aaee886614 /bin/bash [[email protected] /]#yum install -y gcc-c++ gcc

cygwin安装sshd服务并实现无密码登录

http://blog.csdn.net/cybercode/article/details/7080743 这篇文章主要是为我在win7(64位)下搭建hadoop环境所准备的.首先参照在cygwin使用总结这篇文章在cygwin中安装所必须得软件包,然后如下进行操作: [plain] view plaincopy sony@sony-VAIO~ $ ssh-host-config *** Info: Generating /etc/ssh_host_key *** Info: Generat

2-3 sshd服务---暴力破解应对策略

  sshd服务暴力破解步骤 sshd暴力破解方法 防止暴力破解调优 1. 变更默认端口 2. 变更root用户 3. 日志监控-->防止暴力破解(fail2ban应用) fail2ban详解 在初始化的服务器中,20种ssh服务调优方法! 技术来源于生活!!! =============================================== sshd服务暴力破解步骤 第一步:确认目标IP地址 第二步:确认目标端口--->根据目标开放端口,确定其操作系统 第三步:运行暴力破解程序

sshd服务分析

00.阐述 sshd 服务 基本上,所有的 ssh 相关设定都放在 /etc/ssh/sshd_config 里面!不过,每个 Linux distribution 的预设设定都不太相同, 所以我们有必要来了解一下整个设定值的意义为何才好!(一般就看启动脚本的定义路径,像基于源码升级openssh) service sshd restart |stop |reload   #sshd脚本路径/etc/init.d/sshd [[email protected] ~]# cat /etc/init

2-1-搭建Linux实验环境-sshd服务搭建与管理与防治暴力破解-课堂笔记

1.学习Linux服务前期环境准备.搭建一个RHEL6环境 注意:本章学习推荐大家用centos6.X 系列的系统,用RHEL也可以 实验环境搭建: 系统安装 安装RHEL6或者centos 6系列 64位系统 不要用32位 CENTOS6X86_64 从6.5 -6.8 都可以 下载地址:http://pan.baidu.com/s/1o7DxkQu 密码: puny 1)清空iptables [[email protected] ~]# iptables -F[[email protecte

ssh和sshd服务

1.1 对称加密和非对称加密 对称加密:加密和解密使用一样的算法,只要解密时提供与加密时一致的密码就可以完成解密.例如QQ登录密码,银行卡密码,只要保证密码正确就可以. 非对称加密:通过公钥(public key)和私钥(private key)来加密.解密.公钥加密的内容可以使用私钥解密,私钥加密的内容可以使用公钥解密.一般使用公钥加密,私钥解密,但并非绝对如此,例如CA签署证书时就是使用自己的私钥加密. 而这里介绍的SSH服务中,虽然一直建议分发公钥(即使用公钥加密,私钥解密),但也可以分发