Linux菜鸟成长日记(Linux系统远程连接sshd服务,服务管理systemctl)

Linux系统远程连接sshd服务,linux中的服务管理systemctl



openssh服务,是SSH(Secure SHell)的免费开源实现。当当主机开启了openssh服务,那>么就对外开放了远程连接的接口。我们可以通过openssh服务进行对主机的远程操控,文件传输等。

现在来介绍以下openssh服务的具体操作
sshd:openssh服务的服务端,用来保存数据,提供数据。
ssh:openssh服务的客户端,与服务端相对应,接受服务的一方。
注:在计算机世界里凡是提供服务的一方,我们称为服务端(server),而接受服务的另一
方我们称为客户端(client)。
   首先我们需要查看服务端主机ip地址在shell中执行ifconfig
    Linux菜鸟成长日记(Linux系统远程连接sshd服务,服务管理systemctl)

然后在客户端执行“ssh root(用户名)@172.25.151.150(ipaddress)”表示在客户端以root用户的身份通过ssh命令连接172.25.151.150主机。
Linux菜鸟成长日记(Linux系统远程连接sshd服务,服务管理systemctl)
如上所表示,在第一次连接陌生主机的时候,系统会提示你是否确定连接。在并且会在用户
目录下自动建立“.ssh/known_hosts”的文件,连接过的主机的信息会记录在内。
在输入用户密码后,成功连接。
cat /root/.ssh/known_hosts
Linux菜鸟成长日记(Linux系统远程连接sshd服务,服务管理systemctl)
上述连接方式无法打开远程主机的图形功能:如打开gedit或cheese
Linux菜鸟成长日记(Linux系统远程连接sshd服务,服务管理systemctl)
若想打开图形得在IP地址后加上-X

ssh [email protected] -X

连接上后可通过"scp 文件的绝对地址 [email protected]:复制到的绝对地址" 进行文件传输。

   附加,用户登陆审记:可查看当前主机,被登录的记录

       w                查看使用系统的当前用户有那些
       w -f             -f查看使用地点

Linux菜鸟成长日记(Linux系统远程连接sshd服务,服务管理systemctl)
       last             查看用户登陆成功历史

       lastb            查看用户登陆未成功历史

 last

Linux菜鸟成长日记(Linux系统远程连接sshd服务,服务管理systemctl)

lastb

Linux菜鸟成长日记(Linux系统远程连接sshd服务,服务管理systemctl)

每次进行远程连接都要键入密码,未免显得太过麻烦,可以给服务端挂上一把特定的锁,再
给用户端配上一把特定的钥匙,这样就可以进行免密登录了,十分方便。

在sshd,服务端进行操作

在服务端shell下执行“ssh-******”生成**

Linux菜鸟成长日记(Linux系统远程连接sshd服务,服务管理systemctl)

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 [email protected]

生成秘钥后,挂上锁子(加密ssh用户认证)

在服务端进行ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected] (对服务端进行挂锁)

Linux菜鸟成长日记(Linux系统远程连接sshd服务,服务管理systemctl)
3,秘钥生成以后,将秘钥文件从A主机拷贝到B主机:

scp /root/.ssh/id_rsa  [email protected]:/root/.ssh/

然后再进行尝试连接。

附截图

Linux菜鸟成长日记(Linux系统远程连接sshd服务,服务管理systemctl)

免密登录

Linux菜鸟成长日记(Linux系统远程连接sshd服务,服务管理systemctl)


注:想要进行免密连接,前提是客户端得有 "/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 

Linux菜鸟成长日记(Linux系统远程连接sshd服务,服务管理systemctl)

开启或关闭root用户的认证权限,也就是是否允许客户端通过ssh以root用户的身份连接服务端

第78行      显示 PasswordAuthentication yes

Linux菜鸟成长日记(Linux系统远程连接sshd服务,服务管理systemctl)


    执行PasswordAuthentication no 后重启sshd服务
    systmctl restart sshd.service

    后若是通过以服务端超级用户以外的其他用户的身份去连接服务端,则无法被允许连接。

 Linux菜鸟成长日记(Linux系统远程连接sshd服务,服务管理systemctl)

    执行PermitRootLogin no  后重启sshd服务

则不被允许通过ssh以服务端超级用户的身份连接服务端。

Linux菜鸟成长日记(Linux系统远程连接sshd服务,服务管理systemctl)

还可以为服务端设置连接的黑名单和白名单。也就是登陆权限
在第78行后添加:
79 AllowUsers student 用户白名单,当前设定是只允许student登录
白名单设定后,默认白名单外的其他用户均不可登录(超级用户也不行)
80 DenyUsers linux         用户黑名单,当前设定是只不允许linux登录
设置黑名单后,黑名单外的其他用户都可登录。
黑名单和白名单同时存在时,若两个名单中存在相同的人,黑名单生效。

上面对sshd服务的操作中用到了systemctl restart sshd.service 这个命令,systemctl是linux中的服务管理命令
下面列出他的基本指令搭配(以sshd服务为例)
systemctl       动作    服务
systemctl      start          sshd        开启服务
systemctl      stop          sshd        停止服务
systemctl      status                  sshd        查看服务状态
systemctl      restart                  sshd        重启服务
systemctl      reload                  sshd        让服务从新加载配置
systemctl     enable                sshd        设定服务开启启动
systemctl     disable                  sshd        设定服务开机不启动
systemctl  list-dependencies   sshd                查看指定服务的倚赖关系
systemctl       mask                  sshd                冻结指定服务
systemctl      unmask               sshd                解冻指定服务 
systemctl      list-unit-files                 查看系统中所有服务的开机启动状态
systemctl      list-units                 查看系统中所有开启的服务
systemctl   set-default graphical.target          开机时开启图形
systemctl    set-default multi-user.targe   开机时不开图形
setterm        文本界面设定color
vga=ask                                         设定图形界面分辨率

查看sshd服务状态:systemctl status sshd   如下图

Linux菜鸟成长日记(Linux系统远程连接sshd服务,服务管理systemctl)

停止sshd服务:systemctl stop sshd(停止后不可再通过ssh对服务端进行连接)

Linux菜鸟成长日记(Linux系统远程连接sshd服务,服务管理systemctl)

取消sshd服务开机自启:systemctl disable sshd (开机不会自动开启服务)

Linux菜鸟成长日记(Linux系统远程连接sshd服务,服务管理systemctl)

对服务进行锁定:systemct mask sshd (任何人无法使用服务)

Linux菜鸟成长日记(Linux系统远程连接sshd服务,服务管理systemctl)

Linux菜鸟成长日记(Linux系统远程连接sshd服务,服务管理systemctl)

可用systemctl unmask sshd进行解除锁定。