前言
前言:ssh 知识汇总
文章目录
一、一台服务器包括什么
user
:用户名,hostname
:ip地址(域名),password
:密码,port
:端口,ssh
登录默认使用的端口号是22
。- 服务器和账号的区别:服务器包含账号,租的是服务器,一个服务器下可以开多个账号。
二、ssh 与 scp 命令
- 通过
ssh
命令,从一台服务器登录到另一台服务器进行项目开发。 - 通过
scp
命令,将本地文件传给服务器或者将服务器文件传回给本地。
三、服务器的远程登录和退出
1、给服务器配置别名
- 初次登录服务器,输入命令
ssh user@hostname
,初始登录服务器用ip登录,以后每次登录服务器通过配置免密登录。
1)为什么要配置服务器别名?(Why)
-
每次登录都需要输入
ssh user@hostname
,其中hostname
为ip
地址,不方便记忆。 -
通过给服务器上的用户配置别名,通过别名直接登录服务器。
2)配置步骤(How)
-
进入本地家目录下的
.ssh
文件夹(如果没有此文件夹,通过mkdir.ssh
创建) -
创建
.config
文件,然后在文件中输入下面内容Host myserver1 # 服务器别名 HostName # ip地址或域名 User # 用户名 # port:不写的话默认 22 Host myserver2 # 服务器别名 HostName # ip地址或域名 User 用户名 # port:不写的话默认 22
-
配置完成后,登录服务器就可以直接
ssh 服务器别名
进行服务器登录。
2、给服务器配置免密登录
1)为什么要配置免密登录(Why)
- 解决每次登录服务器都需要输入密码的问题,配置完成直接通过
ssh 服务器别名
的方式即可登录成功。
2)配置步骤(How)
a、方法一
- 创建秘钥:输入
ssh-keygen
,然后一直回车,直到看到秘钥指纹,完成后即会在本地生成.ssh
文件夹,并进入.ssh
文件夹,会看到两个文件id_rsa
和id_rsa.pub
。 - 上传公钥:
- 创建完成秘钥后,本地的
.ssh
文件会有两个文件,私钥(id_rsa
)和 公钥(id_rsa.pub
)。 - 想要实现免密登录某个服务器,将公钥(
id_rsa.pub
)里的内容复制到服务器路径为~/.ssh/authorized_keys
文件中并保存即可,如果有多个公钥,回车隔开。 - 如果服务器中没有上述文件夹,创建一个即可。在要登录的服务器上创建一个
.ssh
文件夹,再在里面创建一个authorized_keys
文件。和上面步骤一样,将公钥(id_rsa.pub
)里的内容复制到服务器路径为~/.ssh/authorized_keys
文件中并保存即可,如果有多个公钥,回车隔开。
- 创建完成秘钥后,本地的
b、方法二
- 通过命令
ssh-copy-id 服务器别名
就可以一键在对应的服务器添加公钥。 - 例如,本人的服务器别名为
myserver
,执行ssh-copy-id myserver
就可以将本地公钥直接上传至服务器对应文件夹中的文件里。
3、退出服务器
- 输入
exit
命令或者ctrl + d
4、自动化运维
- 场景:需要登录到多态服务器执行命令。不可能手动进入服务器然后执行命令之后退出再登录到下一台服务器一直操作,繁琐!
- 通过
ssh user@hostname command
或者ssh 服务器别名 command
,会将在服务器端执行命令的标准输出重定向到当前终端。
四、文件传输
1、服务器端路径定义
-
服务器别名(或者ip地址):路径
,:
隔开了服务器别名和服务器内部目录地址。 -
其中目录地址可以用两种形式
- 第一种用绝对路径,即从根目录开始(开头是
/
)。 例如,myserver:/home/acs/homework
, - 第二种是从家目录开始,如果开头不是
/
默认是相对于家目录开始。
例如,myserver:homework/
表示服务器中的~/homework/
目录下。
- 第一种用绝对路径,即从根目录开始(开头是
2、复制文件和文件夹
1)复制文件
- 一次复制单个文件 scp source destination,
destination
为服务器端地址 - 一次复制多个文件:scp source1 source2 destination,多个文件见用空格隔开即可
2)复制文件夹
- 注意
-r
在前面。
a. 复制本地文件夹到目标服务器
- scp -r ~/tmp myserver:homework/,将本地家目录中的
tmp
文件夹复制到myserver
服务器中的~/homework/
目录下。
b. 复制服务器的文件夹到本地
- scp -r myserver:homework .,将
myserver
服务器中的~/homework/
文件夹复制到本地的当前路径下。
c. 实现服务器1向服务器2传文件夹
- 先将服务器
1
的文件夹传到本地,再从本地将文件夹传到服务器2
。
3、使用 scp 给毛坯服务器配置 tmux 和 vim
- 配置
tmux
和vim
:将本地的家目录下的.bashrc
和.vimrc
和.tmux.conf
文件通过 scp 到服务器对应的账号的家目录下即可,例如,scp ~/.vimrc ~/.tmux.conf myserver:。