-
Linux下sshd服务及服务管理命令详解
2020-09-15 00:38:46主要介绍了Linux下sshd服务及服务管理命令,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 -
Linux远程连接服务sshd详解
2019-04-08 16:30:19sshd服务sshd简介sshd的key认证在服务端生成公钥秘钥对上锁动作:在服务端加密sshd服务分发秘钥禁止客户端登录(砸锁)sshd安全设定(让哪些用户可以连接)用户登录信息审计查看使用过并退出的用户信息:last查看...sshd服务
sshd简介
-
sshd=Secure Shell,意思就是可以通过网络在主机中开启shell的服务
-
客户端的软件为:sshd——通过该软件实现远程连接
-
连接方式:
ssh username@IP ## 只是文本方式的连接 ssh username@IP -X ## 连接成功后可以开启图形
注意:第一次连接时需要建立认证文件,需要yes确定,再次连接时已经生成~/.ssh/known_hosts文件记录,不需要输入yes
vim /etc/host.deny 设置禁止相关服务的用户ip,这个主要针对客户端,意思是不让哪些ip连接该服务器
vim /etc/hosts.allow 允许某ip连接,优先级比deny高,但我没有实验成功,因为怎么连都可以连通?这是个问题,下面是解决方法:
解决允许某ip连接
仔细观察/etc/hosts.allow,发现里面已经有明确提示:
我们查看hosts_options 了解其使用规则:man 5 hosts_options
接下来我们修改/etc/hosts.allow
测试: 使用IP为172.25.254.102的客户端去访问,连接失败,使用172.25.254.2客户端去访问,连接成功。
- 远程复制scp:可以把虚拟机文件考到别的虚拟机或真机
上传: scp 文件 root@目的ip:绝对路径 下载: scp root@目的ip:绝对路径 文件夹
sshd的key认证
作用:可以让具体的人进行远程连接,更安全!
在服务端生成公钥秘钥对
注意:这里的公钥相当于锁,秘钥相当于钥匙
ssh-keygen
- 图中三步确认的分别是:
1.确定生成目录
2.是否需要密码
3.确认密码
上锁动作:在服务端加密sshd服务
ssh-copy-id -i /root/.ssh/id_rsa.pub 用户@服务端IP
实例:
为了试验验证更有效果,我们关闭原始密码登录验证!提高安全性,不让别的用户试服务器秘密
修改服务端/etc/ssh/sshd_config
密码登陆认证 PasswordAuthen设为no ,就只能有密钥的登陆了vim /etc/ssh/sshd_config
重启一下服务:两种方法选一种: systemctl restart sshd.service systemctl reload sshd.service
分发秘钥
服务端上了锁,这时由服务端决定把钥匙(秘钥)给谁
scp /root/.ssh/id_rsa root@指定客户端IP:/root/.ssh/
注意:如果不成功有可能该客户端没有改目录,建立一个/root/.ssh/即可
禁止客户端登录(砸锁)
相当于我把锁砸了,你有钥匙也进不了。我们刚刚对服务器加密上锁的过程产生了一个文件:/root/.ssh/authorized_keys,删除该文件,则产生禁止!
如何恢复?
其实我之前说过,公钥就是锁,所以我们把公钥复制到这个文件中即可!cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys 然后重启一下sshd服务 systemctl restart sshd.service 你会发现又可以连接了
sshd安全设定(让服务端的哪些用户可以被远程连接)
主要设定在sshd的配置文件中
查看默认配置:man 5 sshd_config(只是文件名,不是绝对路径)vim /etc/ssh/sshd_config
78 PasswordAuthentication yes/no ##是否允许用户通过登陆系统的密码做sshd的认证 48 PermitRootLogin yes ##是否允许root用户通过sshd服务认证 52 AllowUsers student ##设定用户白名单,白名单设定后,默认不在名单中的用户就不能使用sshd 53 DenyUser student ##设定用户黑名单,黑名单设定后,默认不在名单中的用户可以使用sshd
添加sshd登陆信息
vim /etc/motd ##文件内容就是登陆后显示的信息
用户登录信息审计
w ##查看正在使用当前系统的用户 w -f ##查看使用来源 w -i ##显示IP
查看使用过并退出的用户信息:last
记录在/var/log/wtmp里
查看试图登陆但没成功的用户:lastb
记录在 /var/log/btmp里
主机名设置(方便区分)
hostnamectl set-hostname 新主机名 设置完成后重启一下终端就可以
-
-
Linux下sshd服务管理
2020-02-13 14:08:44实验环境: 物理机 win10 Vmware15.1 虚拟机1 : rhel 7 虚拟机2 :rhel 8...sshd服务命令详解 在可以互相ping通前提下,使用 ssh usrname@ip ##文本模式下连接 的格式 ssh -X usrname@ip ##连接后可以使用图形 ...实验环境:
物理机 :win10 Vmware15.1
虚拟机:
服务器 :rhel 8 ip 192.168.16.101
客户机1 : rhel 7 ip 192.168.16.102
客户机2 : rhel 7 ip 192.168.16.103
使用桥接模式配置在同一网段sshd服务命令详解
在可以互相ping通前提下,使用
ssh remoteusrname@remoteip ##文本模式下连接
的格式
参数 作用 -l 指定登录用户 -i 指定密钥 -x 开启图形 -p 指定端口 -f 后台运行 -o 指定连接参数 -t 指定连接跳板 第一次连接陌生主机要建立认证文件,需要输入yes;再次连接此主机,已经生成~/.ssh/know_host文件,所以不需要再次输入yes,为保证实验环境,实验前执行 rm -fr /root/.ssh/
- ssh -l 指定用户登录
- ssh -X 开启图形
- ssh -f 后台运行
- ssh -o 指定连接参数
ssh安全登录及优化
密码认证:
1.至少6个字符
2.包含数字,字母,下划线特殊符号等
3.易泄漏
4.可被暴力破解
5.密码容易丢失
密钥认证:
1.新型认证方式,分为公钥以及私钥
2.公钥上传服务器
3.私钥配对认证,不会被盗用
4.攻击者一般无法通过密钥登陆服务器ssh-keygen ##交互式产生密钥 ssh-keygen -f /root/.ssh/id_rsa -P " " ##-f 密钥文件路径及名称;-P " " 提示直接生成密钥
在客户机1下生成密钥
查看密钥
使用命令ssh-copy-id -i ./.ssh/id_rsa.pub root@192.168.16.101 上锁远程主机server
此时server上的公钥和客户机1的公钥是一致的
此时客户机1可以免密登录server 因为拥有私钥
对于客户机2仍需要密码登录 ,但可以在server上配置/etc/ssh/sshd_config,并重启服务
使用命令scp /root/.ssh/id_rsa root@192.168.16.103:/root/.ssh 在客户端1传送私钥给客户端2
此时客户机2也可以免密登录server安全配置优化
sshd服务配置参数
参数 作用 Port 22 监听端口 Protocol 2 指定协议版本 ListenAddress 绑定IP(指定sshd的接口开放ip) HostKey 设定HostKey密钥路径 PermitRootLogin 设定超级用户是否能登录 PubkeyAuthentication 公钥认证开关 PasswordAuthentication 密码认证开关 AllowUsers 用户白名单 DenyUsers 用户黑名单 在服务端将PermitRootLogin改为no,重新加载配置,设定超级用户不可登陆
- ssh -l 指定用户登录
-
linux系统基本命令之sshd服务
2017-10-14 20:06:07linux系统基本命令之sshd服务操作详解,希望对大家有所帮助linux系统基本命令之sshd服务
sshd对外提供连接端口 ssh远程连接
服务端(service)和客户端(client)
功能:让远程主机可以通过网络访问sshd服务,开始一个安全shell一.客户端连接方式
ssh 远程主机用户@远程主机ip
[root@desktop0 ~]# ssh root@172.25.50.11
The authenticity of host '172.25.50.11 (172.25.50.11)' can't be established.
ECDSA key fingerprint is eb:24:0e:07:96:26:b1:04:c2:37:0c:78:2d:bc:b0:08.
Are you sure you want to continue connecting (yes/no)? yes ##连接陌生主机时需要建立认证关系
Warning: Permanently added '172.25.50.11' (ECDSA) to the list of known hosts.
root@172.25.50.11's password: ##远程用户密码
Last login: Mon Oct 3 03:13:47 2016
[root@server0 ~]# ##登陆成功
ssh 远程主机用户@远程主机ip -X ##调用远程主机图形工具
ssh 远程主机用户@远程主机ip command ##直接在远程主机运行某条命令二.sshkey加密
1.生成公钥私钥
[root@server0 ~]# ssh-keygen ##生成公钥私钥工具
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):[enter] ##加密字符保存文件(建议用默认)
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): [enter] ##密钥密码,必须>4个字符
Enter same passphrase again: [enter] ##确认密码
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
ab:3c:73:2e:c8:0b:75:c8:39:3a:46:a2:22:34:84:81 root@server0.example.com
The key's randomart image is:
+--[ RSA 2048]----+
|o |
|E. |
|.. |
|. . o |
|.o. * . S |
|oo.o o . |
|+ =. . . |
|o. oo.+.. |
| ..o*. |
+-----------------+
[root@server0 ~]# ls /root/.ssh/
id_rsa id_rsa.pub
id_rsa ##私钥,就是钥匙
id_rsa.pub ##公钥,就是锁
2.添加key认证方式
[root@server0 ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.25.50.11
ssh-copy-id ##添加key认证方式的工具
-i ##指定加密key文件
/root/.ssh/id_rsa.pub ##加密key
root ##加密用户为root
172.25.50.11 ##被加密主机ip
3.分发钥匙给client主机
[root@server0 ~]# scp /root/.ssh/id_rsa root@172.25.0.10:/root/.ssh/
4.测试
[root@desktop0 ~]# ssh root@172.25.50.11 ##通过id_rsa直接连接不需要输入用户密码
Last login: Sat Oct 14 08:38:56 2017 from 172.25.50.10
[root@server0 ~]#
三.提升openssh的安全级别
1.openssh-server配置文件
vim /etc/ssh/sshd_config
78 PasswordAuthentication yes|no ##是否开启用户密码认证,yes为支持no为关闭
48 PermitRootLogin yes|no ##是否允许超级用户登陆
49 AllowUsers student westos ##用户白名单,只有在名单中出现的用户可以使用sshd建立shell
50 DenyUsers westos ##用户黑名单
2.控制ssh客户端访问
vim /etc/hosts.deny
sshd:ALL ##拒绝所有人链接sshd服务
vim /etc/hosts.allow
sshd:172.25.50.10 ##允许10主机链接sshd
sshd:172.25.50.10 , 172.25.254.180 ##允许250和180链接
sshd:ALL EXCEPT 172.25.254.200 ##只不允许200链接sshd
3.ssh登陆提示修改该
vim /etc/motd ##显示登陆后字符
####end
-
SSH-sshd_config配置文件详解-xShell连接Linux服务器提示密码错误。
2017-10-10 15:40:54service sshd status,如果没有开启,请执行service sshd start启动该服务,或者通过service sshd restart重启该服务;2、检查 /etc/ssh/ssh_config文件: ssh服务端口是否为22,Protocol协议版本是否为2(一般为2...xShell连接Linux服务器提示密码错误。
1、检查虚拟机SSH服务是否开启:
service sshd status,如果没有开启,请执行service sshd start启动该服务,或者通过service sshd restart重启该服务;
2、检查 /etc/ssh/ssh_config文件:
ssh服务端口是否为22,Protocol协议版本是否为2(一般为2安全。1为ssh 1不安全,有可能禁止登陆);
3、检查/etc/ssh/sshd_config:
将
# Authentication:
LoginGraceTime 120
PermitRootLogin without passwd
StrictModes yes
改成
# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes
或者
当SSH配置被注释掉时,将注释释放就可以。
重启虚拟机。
sshd_config 配置文件详解
Port 22 #设置ssh监听的端口号,默认22端口
ListenAddress ::
ListenAddress 0.0.0.0 #指定监听的地址,默认监听所有;
Protocol 2,1 #指定支持的SSH协议的版本号。’1’和’2’表示仅仅支持SSH-1和SSH-2协议。
“2,1”表示同时支持SSH-1和SSH-2协议。#
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key #HostKey是主机私钥文件的存放位置;
SSH-1默认是 /etc/ssh/ssh_host_key 。SSH-2默认是 /etc/ssh/ssh_host_rsa_key和
/etc/ssh/ssh_host_dsa_key 。一台主机可以拥有多个不同的私钥。”rsa1”仅用于SSH-1,
“dsa”和”rsa”仅用于SSH-2。
UsePrivilegeSeparation yes #是否通过创建非特权子进程处理接入请求的方法来进行权
限分 离。默认值是”yes”。 认证成功后,将以该认证用户的身份创另一个子进程。这样做的目的是
为了防止通过有缺陷的子进程提升权限,从而使系统更加安全。
KeyRegenerationInterval 3600 #在SSH-1协议下,短命的服务器密钥将以此指令设置的时
间为周期(秒),不断重新生成;这个机制可以尽量减小密钥丢失或者黑客攻击造成的损失。设为 0
表示永不重新生成为 3600(秒)。
ServerKeyBits 1024 #指定服务器密钥的位数
SyslogFacility AUTH #指定 将日志消息通过哪个日志子系统(facility)发送。有效值是:
DAEMON, USER, AUTH(默认), LOCAL0, LOCAL1, LOCAL2, LOCAL3,LOCAL4, LOCAL5,
LOCAL6, LOCAL7
LogLevel INFO #指定日志等级(详细程度)。可用值如下:QUIET, FATAL, ERROR, INFO
(默认), VERBOSE, DEBUG, DEBUG1, DEBUG2, DEBUG3,DEBUG 与 DEBUG1 等价;DEBUG2
和 DEBUG3 则分别指定了更详细、更罗嗦的日志输出。比 DEBUG 更详细的日志可能会泄漏用户
的敏感信息,因此反对使用。
LoginGraceTime 120 #限制用户必须在指定的时限(单位秒)内认证成功,0 表示无限制。默认
值是 120 秒;如果用户不能成功登录,在用户切断连接之前服务器需要等待120秒。
PermitRootLogin yes #是否允许 root 登录。可用值如下:”yes”(默认) 表示允许。
“no”表示禁止。”without-password”表示禁止使用密码认证登录。”forced-commands-only”
表示只有在指定了 command 选项的情况下才允许使用公钥认证登录,同时其它认证方法全部被禁止。
这个值常用于做远程备份之类的事情。
StrictModes yes #指定是否要求 sshd(8) 在接受连接请求前对用户主目录和相关的配
置文件 进行宿主和权限检查。强烈建议使用默认值”yes”来预防可能出现的低级错误。
RSAAuthentication yes #是否允许使用纯 RSA 公钥认证。仅用于SSH-1。默认值是”yes”。
PubkeyAuthentication yes #是否允许公钥认证。仅可以用于SSH-2。默认值为”yes”。
IgnoreRhosts yes #是否取消使用 ~/.ssh/.rhosts 来做为认证。推荐设为yes。
RhostsRSAAuthentication no #这个选项是专门给 version 1 用的,使用 rhosts 档案在
/etc/hosts.equiv配合 RSA 演算方式来进行认证!推荐no。
HostbasedAuthentication no #这个与上面的项目类似,不过是给 version 2 使用的
IgnoreUserKnownHosts no #是否在 RhostsRSAAuthentication 或
HostbasedAuthentication 过程中忽略用户的 ~/.ssh/known_hosts 文件。默认值是”no”。为了提高安全性,可以设为”yes”。
PermitEmptyPasswords no #是否允许密码为空的用户远程登录。默认为”no”。
ChallengeResponseAuthentication no #是否允许质疑-应答(challenge-response)认证。默认值是”yes”,所有 login.conf中允许的认证方式都被支持。
PasswordAuthentication yes # 是否允许使用基于密码的认证。默认为”yes”。
KerberosAuthentication no #是否要求用户为 PasswordAuthentication 提供的密码必须通 过 Kerberos KDC 认证,也就是是否使用Kerberos认证。使用Kerberos认证,服务器需要一个可以校验 KDC identity 的 Kerberos servtab 。默认值是”no”。
KerberosGetAFSToken no #如果使用了 AFS 并且该用户有一个 Kerberos 5 TGT,那么开启该指令后,将会在访问用户的家目录前尝试获取一个 AFS token 。默认为”no”。KerberosOrLocalPasswd yes #如果 Kerberos 密码认证失败,那么该密码还将要通过其它的认证机制(比如 /etc/passwd)。默认值为”yes”。
KerberosTicketCleanup yes #是否在用户退出登录后自动销毁用户的 ticket 。默认”yes”。
GSSAPIAuthentication no #是否允许使用基于 GSSAPI 的用户认证。默认值为”no”。仅用 于SSH-2。
GSSAPICleanupCredentials yes #是否在用户退出登录后自动销毁用户凭证缓存。默认值是”yes”。仅用于SSH-2。
X11Forwarding no #是否允许进行 X11 转发。默认值是”no”,设为”yes”表示允许。如果允许X11转发并且sshd代理的显示区被配置为在含有通配符的地址(X11UseLocalhost)上监听。那么将可能有额外的信息被泄漏。由于使用X11转发的可能带来的风险,此指令默认值为”no”。需要注意的是,禁止X11转发并不能禁止用户转发X11通信,因为用户可以安装他们自己的转发器。如果启用了 UseLogin ,那么X11转发将被自动禁止。
X11DisplayOffset 10 #指定X11 转发的第一个可用的显示区(display)数字。默认值 是 10 。这个可以用于防止 sshd 占用了真实的 X11 服务器显示区,从而发生混淆。
PrintMotd no #登入后是否显示出一些信息呢?例如上次登入的时间、地点等等,预设是 yes ,但是,如果为了安全,可以考虑改为 no !
PrintLastLog yes #指定是否显示最后一位用户的登录时间。默认值是”yes”
TCPKeepAlive yes #指定系统是否向客户端发送 TCP keepalive 消息。默认值是”yes”。这种消息可以检测到死连接、连接不当关闭、客户端崩溃等异常。可以设为”no”关闭这个特性。
UseLogin no #是否在交互式会话的登录过程中使用 login。默认值是”no”。
如果开启此指令,那么 X11Forwarding 将会被禁止,因为 login 不知道如何处理 xauth cookies 。需要注意的是,login是禁止用于远程执行命令的。如果指定了
UsePrivilegeSeparation ,那么它将在认证完成后被禁用。
MaxStartups 10 #最大允许保持多少个未认证的连接。默认值是 10 。到达限制后,
将不再接受新连接,除非先前的连接认证成功或超出 LoginGraceTime 的限制。
MaxAuthTries 6 #指定每个连接最大允许的认证次数。默认值是 6 。如果失败认证的次数超过这个数值的一半,连接将被强制断开,且会生成额外的失败日志消息。
UseDNS no #指定是否应该对远程主机名进行反向解析,以检查此主机名是否与其IP地址真实对应。
Banner /etc/issue.net #将这个指令指定的文件中的内容在用户进行认证前显示给远程用户。
这个特性仅能用于SSH-2,默认什么内容也不显示。”none”表示禁用这个特性。
Subsystem sftp /usr/lib/openssh/sftp-server #配置一个外部子系统(例如,一个文件传输守 护进程)。仅用于SSH-2协议。值是一个子系统的名字和对应的命令行(含选项和参数)。
UsePAM yes #是否使用PAM模块认证 -
Linux下ssh服务详解
2018-04-04 16:28:40系统 # cat /etc/redhat-...CentOS Linux release 7.4.1708 (Core) # uname -r 3.10.0-693.2.2.el7.x86_64 # cat /etc/ssh/sshd_config ======分割线====== # $OpenBSD: sshd_config,v 1.100 2016/08/15 12:32... -
sshd命令参数详解
2017-09-27 15:24:12因为在Linux系统中的一切都是文件,因此要想在Linux系统中修改服务程序的运行参数,实际上也是在修改程序配置文件的过程,sshd服务的配置信息保存在/etc/ssh/sshd_config文件中,运维人员一般会把保存着最主要配置... -
Linux ssh命令详解
2019-03-23 13:28:56Linux ssh命令详解 SSH(远程连接工具)连接原理:ssh服务是一个守护进程(demon),系统后台监听客户端的连接,ssh服务端的进程名为sshd,负责实时监听客户端的请求(IP 22端口),包括公共秘钥等交换等信息。 ssh... -
sshd服务协议(包括超级详细的scp命令详解)不用给主机上锁类
2019-04-10 20:43:29在linux系统操作中,经常需要连接其他的主机,sshd服务的功能是让远程主机可以通过网络访问ssdh服务,开始一个安全shell。 第一次链接陌生主机是要建立认证文件,所以会出现下图中的询问是否建立,输入yes后,输入... -
Linux openssh-server ssh-key加密 访问控制详解 sshd访问控制
2017-11-12 22:59:39功能:让远程主机可以通过网络访问sshd服务,开始一个安全shell 2).客户端连接方式 ssh 远程主机用户@远程主机ip [root@foudation8 ~]# ssh root@172.25.0.11 The authenticity of host '172.25.0.11 (172 -
LInux操作详解
2019-11-24 21:06:33目录 一:安装vmware和linux镜像; 1:安装vmware和CentOS镜像; 2:vmtools的使用(CentOS7后自动安装上了,...1:检查服务sshd服务是否开启; 1:通过图形化界面来开启-步骤: 2:通过命令行开启; 2:xshell... -
sshd系统自带启动脚本详解
2014-04-20 09:54:33sshd服务是linux系统中最经常使用的服务之一。由于其规避了明文传送口令、内容本文及中间人攻击的安全隐患,因此经常作为远程管理系统的首选方案。虽然各个linux发行版本或多或少都会有所差异,但sshd服务一定会作为... -
LInux操作详解三:linux实际操作及远程登录
2020-06-05 13:52:341:检查服务sshd服务是否开启; 1:通过图形化界面来开启-步骤: 2:通过命令行开启; 2:xshell-远程登录Linux系统; 3:xftp-远程文件上传下载; 三:Linux实际操作; 1:检查服务sshd服务是否开启; 如果... -
Linux网络服务-基础-ssh配置参数详解
2020-03-26 11:15:44禁止使用密码登录 ... 配置文件:/etc/ssh/sshd_config 选项:PasswordAuthentication vim 中命令模式下:/Password 改为no 重启服务service sshd restart # 6.x systemctl restart sshd #7.x 禁止使用roo... -
Linux SSH配置详解和禁止Root远程登陆设置
2012-02-08 11:14:121、service sshd restart 或者 /etc/init.d/sshd restart(ssh服务器重启) 一、修改vi /etc/ssh/sshd_config 文件 1、修改默认端口:默认Port为22,并且已经注释掉了;修改是把注释去掉,并修改 成其它的端口。... -
Mac连接远程服务器(Linux)显示GUI图形界面 | 详解
2020-11-02 11:54:08问题:Mac通过[终端]ssh登陆linux并且在Mac显示linux图形 解决方法:对Mac和Linux的文件进行相应配置,使用XQuartz工具,在Xterm下使用ssh连接Linux服务器,即可显示...重启Linux服务器的ssh服务 service ssh restart -
Linux之定时任务Crond详解
2021-01-10 15:19:47Crond是linux系统中用来定期执行命令/脚本或指定程序任务的一种服务或软件,一般情况下,我们安装完Centos5/6 linux操作系统之后,默认便会启动Crond任务调度服务。 Crond服务会定期(默认每分钟检查一次)检查系统...