Linux系统远程连接sshd服务,linux中的服务管理systemctl
openssh服务,是SSH(Secure SHell)的免费开源实现。当当主机开启了openssh服务,那>么就对外开放了远程连接的接口。我们可以通过openssh服务进行对主机的远程操控,文件传输等。
现在来介绍以下openssh服务的具体操作ssh [email protected] -X
连接上后可通过"scp 文件的绝对地址 root@IP:复制到的绝对地址" 进行文件传输。
lastb 查看用户登陆未成功历史
last
lastb
每次进行远程连接都要键入密码,未免显得太过麻烦,可以给服务端挂上一把特定的锁,再在服务端shell下执行“ssh-keygen”生成密钥
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_rsa.pub. <——生成的公钥
The key fingerprint is:
93:08:88:88:dc:8f:46:d8:a3:09:fc:35:25:50:d0:fe root@Server
生成秘钥后,挂上锁子(加密ssh用户认证)
在服务端进行ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected] (对服务端进行挂锁)
scp /root/.ssh/id_rsa [email protected]:/root/.ssh/
然后再进行尝试连接。
附截图
免密登录
注:想要进行免密连接,前提是客户端得有 "/root/.ssh/" 这个文件夹,并且文件夹尽量的保持纯净,否则将会造成不必要的麻烦,可用ls -a /root 来观测是否含有.ssh这个文件。若是没有可以尝试用ssh命令对客户端进行连接,系统会自动在/root/自动下生成.ssh 这个文件。
若是想要不再免密连接,可在服务端删除:/root/.ssh/authorized_keys (等同于将门上特定的锁去掉了,有钥匙也无法连接)
若是要恢复连接,可在在服务端执行: cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys 重新生成锁文件,解密文件功能恢复
上述,第一种连接方式表示一旦知道服务端的超级用户密码与IP就可以远程对服务端进行任何操作,显然是不安全。为了保证服务器的安全性,我们可以对可连接服务端的客户端进行约束。
这时需要对ssh的配置文件(/etc/ssh/sshd_config)进行修改
在服务端执行vim /etc/ssh/sshd_config
第48行 显示 PermitRootLogin no/yes
开启或关闭root用户的认证权限,也就是是否允许客户端通过ssh以root用户的身份连接服务端
第78行 显示 PasswordAuthentication yes
执行PasswordAuthentication no 后重启sshd服务
systmctl restart sshd.service
后若是通过以服务端超级用户以外的其他用户的身份去连接服务端,则无法被允许连接。
执行PermitRootLogin no 后重启sshd服务则不被允许通过ssh以服务端超级用户的身份连接服务端。
还可以为服务端设置连接的黑名单和白名单。也就是登陆权限查看sshd服务状态:systemctl status sshd 如下图
停止sshd服务:systemctl stop sshd(停止后不可再通过ssh对服务端进行连接)
取消sshd服务开机自启:systemctl disable sshd (开机不会自动开启服务)
对服务进行锁定:systemct mask sshd (任何人无法使用服务)
可用systemctl unmask sshd进行解除锁定。