导语:大家都知道,公司买上服务器,不可能实时在线操作虚拟机,也没有那个时间和精力登录到公司的云服务商官网进行操作,一来不安全,二来也效率不高。
如果是购买的虚拟主机,你可以使用ftp进行本地程序文件传输和从虚拟主机下载文件到本地。但是对于云服务器来说这种操作方法就显得落后许多了。
今天主要是重点讲解如何使用ssh来操作Linux系统,还是以centos7为蓝本。
# 安装要求
linux centos7系统
# 安装ssh程序包
打开系统命令行,输入以下命令下载包。
查看是否安装openssh
rpm -qa|grep -E "openssh"
yum install -y openssh openssh-server
等待几分钟就下载好了。
# 启动ssh服务
接下来我们运行以下命令使ssh服务可以长时间在线运行。
启动ssh服务程序
systemctl start sshd
开机自启动
systemctl enable sshd
开启防火墙服务
firewall-cmd --add-service=ftp/tcp --permanent
firewall-cmd --add-service=http/tcp --permanent
firewall-cmd --reload
2
3
# 下载ssh软件
这里推荐两个不错的软件。
下载完了安装到本地,下一步安装你懂的。
# 连接服务
下载好以后,你就可以进行连接远程云服务器进行操作了.
那个ip地址就是你服务器的ip,账号和密码就是你服务器的登录账号的密码,或者是你在系统上创建的其他账户的用户名和密码。
那个端口号是默认22,所以你要开启防火墙添加这个端口号。
firewall-cmd --add-port=22/tcp --permanent
温馨提示:如果你的账号是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 ...
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]
------+
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
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 # 私钥文件
2
3
4
5
6
7
8
9
10
11
12
13
14
15
上面是一个的,如果多个,就按照这个格式填写多个密钥对应不同主机即可。
# 拷贝公钥到服务器
ssh-copy-id -i ~/.ssh/test.pub -p 端口号 服务器账号@服务器ip
查看日志ssh root@192.168.1.1 -vvv
# 体验免密登录
接下来就可以免密登录了。
ssh root@192.168.1.1
# 写在最后
本文主要是自己的亲身体验,最后做一个总结。如有不足之处,还请多多指教。