CentOS7系统中ssh的用法

导语:大家都知道,公司买上服务器,不可能实时在线操作虚拟机,也没有那个时间和精力登录到公司的云服务商官网进行操作,一来不安全,二来也效率不高。

如果是购买的虚拟主机,你可以使用ftp进行本地程序文件传输和从虚拟主机下载文件到本地。但是对于云服务器来说这种操作方法就显得落后许多了。

今天主要是重点讲解如何使用ssh来操作Linux系统,还是以centos7为蓝本。

# 安装要求

linux centos7系统

# 安装ssh程序包

打开系统命令行,输入以下命令下载包。

查看是否安装openssh

rpm -qa|grep -E "openssh"
1
yum install -y openssh openssh-server
1

等待几分钟就下载好了。

# 启动ssh服务

接下来我们运行以下命令使ssh服务可以长时间在线运行。

启动ssh服务程序

systemctl start sshd
1

开机自启动

systemctl enable sshd
1

开启防火墙服务

firewall-cmd --add-service=ftp/tcp --permanent
firewall-cmd --add-service=http/tcp --permanent
firewall-cmd --reload
1
2
3

# 下载ssh软件

这里推荐两个不错的软件。

下载完了安装到本地,下一步安装你懂的。

# 连接服务

下载好以后,你就可以进行连接远程云服务器进行操作了.

那个ip地址就是你服务器的ip,账号和密码就是你服务器的登录账号的密码,或者是你在系统上创建的其他账户的用户名和密码。

那个端口号是默认22,所以你要开启防火墙添加这个端口号。

firewall-cmd --add-port=22/tcp --permanent
1

温馨提示:如果你的账号是root账号,就不需要加sudo了,否则请在命令前面加。

# 免密登录

有时候经常输入密码,容易忘记,也很麻烦,还会遭受黑客攻击,暴力破解等情况,所以可以使用免密登录。

# ssh-keygen用法

$ ssh-keygen --version
ssh-keygen: unknown option -- -
usage: ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa] [-m format]
                  [-N new_passphrase] [-C comment] [-f output_keyfile]
       ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-m format]
                   [-f keyfile]
       ssh-keygen -i [-m key_format] [-f input_keyfile]
       ssh-keygen -e [-m key_format] [-f input_keyfile]
       ssh-keygen -y [-f input_keyfile]
       ssh-keygen -c [-P passphrase] [-C comment] [-f keyfile]
       ssh-keygen -l [-v] [-E fingerprint_hash] [-f input_keyfile]
       ssh-keygen -B [-f input_keyfile]
       ssh-keygen -D pkcs11
       ssh-keygen -F hostname [-f known_hosts_file] [-l]
       ssh-keygen -H [-f known_hosts_file]
       ssh-keygen -R hostname [-f known_hosts_file]
       ssh-keygen -r hostname [-f input_keyfile] [-g]
       ssh-keygen -G output_file [-v] [-b bits] [-M memory] [-S start_point]
       ssh-keygen -T output_file -f input_file [-v] [-a rounds] [-J num_lines]
                  [-j start_line] [-K checkpt] [-W generator]
       ssh-keygen -s ca_key -I certificate_identity [-h] [-U]
                  [-D pkcs11_provider] [-n principals] [-O option]
                  [-V validity_interval] [-z serial_number] file ...
       ssh-keygen -L [-f input_keyfile]
       ssh-keygen -A
       ssh-keygen -k -f krl_file [-u] [-s ca_public] [-z version_number]
                  file ...
       ssh-keygen -Q -f krl_file file ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

# 生成密钥

生成一个密钥,如果是多个密钥,记得输入文件名称。

ssh-keygen -t rsa -b 4096 -C "xxx@xxx.com"
# 回车,输入文件名称
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/woshidev/.ssh/id_rsa): test
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in test.
Your public key has been saved in test.pub.
The key fingerprint is:
SHA256:fUMdZshVgIZNb4OoQckzjm+aNRUTt7JNh9NG/QQgNEQ xxx@xxx.com
The key's randomart image is:
+---[RSA 4096]
-----+
|       ..=E*+=O=.|
|       .= +=*@ .o|
|       o.oo+B O..|
|      . .+.* = ..|
|       .S.o +    |
|        =  . .   |
|       = .       |
|      o          |
|                 |
+----[SHA256]
------+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

或者ssh-keygen -t rsa -b 4096 -C "xxx@xxx.com" -f ~/.ssh/a_rsa,也可以指定文件路径和名称

# 配置多个密钥

创建一个config文件,写入一下内容。

touch config
vi config
1
2

配置文件内容

# test host
Host 192.168.1.1 # 主机域名或者ip
HostName 192.168.1.1 # 主机名称
User root # 登录用户名
Port 1234 # 登录端口号
PreferredAuthentications publickey,password publickey,keyboard-interactive # 密钥和密码都可以登录
IdentityFile /C/Users/test/.ssh/test # 私钥文件

# git host
Host 192.168.1.2 # 主机域名或者ip
HostName 192.168.1.2 # 主机名称
User root # 登录用户名
Port 123456 # 登录端口号
PreferredAuthentications publickey,password publickey,keyboard-interactive # 密钥和密码都可以登录
IdentityFile /C/Users/test/.ssh/git # 私钥文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

上面是一个的,如果多个,就按照这个格式填写多个密钥对应不同主机即可。

# 拷贝公钥到服务器

ssh-copy-id -i ~/.ssh/test.pub -p 端口号 服务器账号@服务器ip
1

查看日志ssh root@192.168.1.1 -vvv

# 体验免密登录

接下来就可以免密登录了。

ssh root@192.168.1.1
1

# 写在最后

本文主要是自己的亲身体验,最后做一个总结。如有不足之处,还请多多指教。

分享至:

  • qq
  • qq空间
  • 微博
  • 豆瓣
  • 贴吧