前言
本文简单的介绍一下ssh与scp
ssh登录
1.作用
在开发时,通常会用Terminal通过ssh登录到每个服务器里,打开服务器终端,以进行开发,通常来说,一个服务器会给出如下的几个信息:
host
IP
password
2.登录服务器
基本格式:
ssh user@hostname
其中:user:用户名,hostname:IP地址/域名
如果是第一次登录的时候,会有提示,输入yes,输入密码,即可登录,密码输入时不显示,提示如下图所示:
输入exit/ctrl+d/logout即可退出
当输入yes时,会将服务器信息存入ssh文件夹中的known_hosts文件,再次登录就无需验证Yes
3.修改端口号
默认端口号为22,修改端口号的基本命令格式为:
ssh user@hostname -p 22
4.配置文件
通过配置文件的方式给服务器账号配置别名,用短字符串替代长字符串,如创建一个名为config的文件
在根目录下有
~/.ssh/config
在其中编写:
Host 别名
HostName IP地址/域名
User 用户名
port 默认情况下,如果不写即为22
当有多个服务器时,可以配置多个服务器账号,格式如下:
Host myserver1
...
Host myserver2
...
5.免密登录
基本格式:
ssh-keygen # 创建密钥
此时,在~/.ssh中出现了两个文件
id_rsa 密钥
id_rsa.pub 公钥
密钥与公钥是唯一配对的一对,生成之后,想要免密登录到哪个服务器,即将公钥传到哪个服务器即可
复制方法:
1.打开公钥内容,并复制密钥:
cat id_rsa.pub
2.登录到想要免密登录的服务器,在其中创建~/.ssh文件夹
3.创建新文件authorized_keys,将内容复制进去即可
当有多个密钥时需用空格隔开
或者使用以下命令一键添加:
ssh-copy-id 服务器名称
6.执行命令:
当实现自动化运维时,需要执行一些基本的操作,通过使用执行命令,来让服务器执行一些基本的自动化格式命令
基本格式:
ssh user@hostname command
同样的,执行命令可以执行一个for循环,ssh会将执行命令的标准输出重定向到当前终端中,如下所示:
# 加单引号/双引号是为了防止歧义
ssh myserver 'for ((i=0;i<=10;i++))do echo $i done'
ssh myserver "for((i=0;i<=10;i++))do echo $i done"
注"中i不会被解析,’'中i`会被解析
scp传文件
实现不同文件之间传文件
基本命令:
将source路径下的文件复制到destination中
scp source destination
同样的一次可以复制多个文件:
scp source1 source2 destination
1.复制文件夹
基本命令:
scp -r
1)有几点需要注意:
1>.-r一定要放在source与destination前面
2>.对于某一个位置的地址,一般格式为:myserver:后面接的是相对于服务器账号的家目录,可以是绝对路径/相对路径
2).服务器与服务器之间进行文件传输
其基本一般模式如下图所示:
两个服务器之间可以进行直接传输,但是需要相互之间完整授权
3).关于scp复制的两个方向:
1>.去:从本地家目录下的tmp文件夹复制到myserver服务器的/home/acs文件夹下
scp -r ~/tmp myserver:/home/acs
2>.来:将服务器的文件夹复制到本地的dir文件夹
scp -r myserver:/var/lib/locales/supported.d dir
4).scp指定服务器端口号
scp -P xx source destination
注:P大写,且P放在source和destination之前
2.使用scp配置一个毛坯服务器
配置一个毛坯服务器,需要装饰的东西,也就是vim与tmux
方法:将.vimrc与.tmux.conf复制到服务器对应的目录下
位置:在初始的Terminal中输入ls -a即可找到
命令为:
scp ~/.vimrc ~/.tmux.conf myserver:
总结
以上就是今天要讲的内容,本文仅仅简单介绍了ssh与scp的使用,便于我们操作多个服务器与管控
推荐学习博客 https://xxetb.xetslk.com/s/4GgGz6