1.查看SSH是否安装:一般是默认安装好了的

[changairjb@localhost ~]$ rpm -qa | grep ssh
libssh-0.9.5-1.oe1.aarch64
openssh-8.2p1-13.oe1.aarch64
openssh-server-8.2p1-13.oe1.aarch64     //服务端
libssh2-1.9.0-6.oe1.aarch64
openssh-clients-8.2p1-13.oe1.aarch64    //客户端

2. 如果没有安装:输入以下命令下载

$ sudo yum install openssh-clients-8.2p1-13.oe1.aarch64    //客户端
$ sudo yum install openssh-server-8.2p1-13.oe1.aarch64     //服务端

 3.安装缺失的包、并配置SSH:

# yum install openssh*

 4.了解SSH配置服务

使用rpm -ql 查看该SSH包安装后都释放了哪些文件,我们从中可以看到有关SSH服务端的配置文件在 /etc/ssh/sshd_config 中,除此之外,在该文件的同目录中,还有ssh_config这个文件也是有关SSH配置的,但是该文件是属于客户端的配置文件。

root@localhost:/etc/ssh# rpm -ql openssh-server 
/etc/ima/digest_lists.tlv/0-metadata_list-compact_tlv-openssh-server-8.2p1-9.oe1.x86_64
/etc/ima/digest_lists/0-metadata_list-compact-openssh-server-8.2p1-9.oe1.x86_64
/etc/pam.d/sshd
/etc/ssh/sshd_config
/etc/sysconfig/sshd

5.配置文件注解:

      1 # $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $
      2 
      3 # This is the sshd server system-wide configuration file.  See
      4 # sshd_config(5) for more information.
      5 
      6 # This sshd was compiled with PATH=/usr/local/bin:/usr/bin:/usr/local/sb        in:/usr/sbin
      7 
      8 # The strategy used for options in the default sshd_config shipped with
      9 # OpenSSH is to specify options with their default value where
     10 # possible, but leave them commented.  Uncommented options override the
     11 # default value.
     12 
     13 # If you want to change the port on a SELinux system, you have to tell
     14 # SELinux about this change.
     15 # semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
     16 #
     17 #Port 22
     18 #AddressFamily any
     19 #ListenAddress 0.0.0.0
     20 #ListenAddress ::

#禁用root账户登录,如果是用root用户登录请开启
PermitRootLogin yes
 
# 是否让 sshd 去检查用户家目录或相关档案的权限数据,
# 这是为了担心使用者将某些重要档案的权限设错,可能会导致一些问题所致。
# 例如使用者的 ~.ssh/ 权限设错时,某些特殊情况下会不许用户登入
StrictModes no
 
# 是否允许用户自行使用成对的密钥系统进行登入行为,仅针对 version 2。
# 至于自制的公钥数据就放置于用户家目录下的 .ssh/authorized_keys 内
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys
 
# 有了证书登录了,就禁用密码登录吧,安全要紧
PasswordAuthentication no

17默认监听端口为22端口
18IPV4和IPV6协议家族支持哪个,any表示二者均支持
19指明监听的地址,0.0.0.0表示本机的所有地址都可以被登陆
20指明监听的IPV6的所有地址格式,::表示支持本地所有
22默认rsa私钥认证
23支持dsa私钥认证
24支持ecdsa私钥认证
25支持ed25519私钥认证
37登录的宽限时间为2分钟,默认2分钟没有输入密码,则自动断开连接
38是否允许管理员直接登录,yes表示允许
39是否让sshd去检查用户主目录或相关文件的权限数据,yes表示允许
40最大认证尝试次数,6表示最多只有6次机会。继续输错之后需要等待时间才能再次输入密码
41允许的最大会话数,10表示最多开启10个会话
43公钥认证,开启
47服务器识别公钥时,会匹配 .ssh/名为authorized_keys文件,然后将公钥发给客户端,因此我们需要把有关公钥的文件名字改为这个名字。
65是否允许支持基于口令的认证,是
69是否允许任何的密码认证,否
71是否支持kerberos(基于第三方的认证,如LDAP)认证的方式,默认为no
115是否开启DNS,是(关闭的话可以在连接服务端时更快一些)
113默认验证信息基于SFTP传输,如果在该段文字前加上“#”则不支持SFTP连接
注:
以上#开头的英文行,表示系统默认执行的,如果要修改建议不要删除原有文字,去掉#另写一行自己需要的配置则原默认的不再生效。

6. 修改配置文件:

17行修改端口号为2222后,登录的格式为ssh 192.168.112.132 2222(注意IP和端口号之间没有“:”是空格),命令如下,修改之后重启服务。让防火墙允许,回车显示成功(如果防火墙关闭就没必要写这些)。添加自定义端口到服务,之后回车没有错误,但如果提示 ValueError: Port tcp/4444 already defined 没关系,我们可以再换一个端口试试。

在这里插入图片描述

  • 启动ssh的服务:
systemctl start sshd.service
  • 设置开机自动启动ssh服务
systemctl enable sshd.service

7.远程搭建SSH服务

实验环境:一台openEuler系统的服务器和一台装了openEuler系统虚拟机的Windows 10

 基于口令密码的连接。输入指令ssh changairjb@10.10.1.27 -p 22 ,之后输入服务端的密码,然后成功远程登录。(cahngairjb是服务端用户名,输入的密码的用户登录密码,如果改了端口号22需要改成修改后的的端口,不加默认是22)如下:

root@localhost:~# ssh changairjb@10.10.1.27

Authorized users only. All activities may be monitored and reported.
changairjb@10.10.1.27's password: 

Authorized users only. All activities may be monitored and reported.
Activate the web console with: systemctl enable --now cockpit.socket

Last login: Tue Dec 14 13:05:26 2021

8.使用SSH传输文件/文件夹

1. 从服务器下载文件
命令格式如下:scp <用户名>@<ssh服务器地址>:<文件路径> <本地文件名>

示例,下载文件到本地桌面

scp root@127.0.0.1:~/test.txt ~/Desktop/test.txt

2. 上传文件到服务器
命令格式如下:scp <本地文件名> <用户名>@<ssh服务器地址>:<上传保存路径即文件名>

示例:上传文件到服务器

[java@localhost Dnspod]$ scp ddnspod.sh java@192.168.20.3:./ddnspod.sh

Authorized users only. All activities may be monitored and reported.
java@192.168.20.3's password: 
ddnspod.sh                                                             100%  355   851.4KB/s   00:00  

这里需要注意的一点是,只能将文件上传至用户目录下。如需上传至其它目录,可先上传至用户目录,然后移动文件至指定位置。

3. 文件夹操作
上传/下载文件夹操作与文件操作类似,只需加入参数 -r 即可。

9.退出ssh远程控制

退出的命令:logout
————————————————
实现SSH互信,免登录参考以下链接:

SSH简介及两种远程登录的方法_德prince-CSDN博客_ssh

通过ssh远程收发文件参考以下链接:

使用SSH传输文件/文件夹_bedisdover的博客-CSDN博客

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐