Linux基础(四)SSH & SCP文件传输

蓝色
紫色
红色

SSH   (Secure Shell)

参考链接:SSH简介及两种远程登录的方法

Git 官方手册 - 4.3 服务器上的 Git - 生成 SSH 公钥

简要介绍

SSH是建立在 应用层基础上 的专为 远程登录会话 和其他网络服务提供安全性的可靠安全协议。SSH 协议可以有效防止远程管理过程中的信息泄露问题。

登录远程服务器

ssh (-p 22) username@ip   # 默认端口号22 如需修改 使用 -p XX

首次登录会提示:

The authenticity of host 'XXX' can't be established.
ECDSA key fingerprint is SHA256:iy237yysfCe013/l+kpDGfEG9xxHxm0dnxnAbJTPpG8.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

即提示:该远程主机的真实性无法确定,其公钥指纹为 SHA256:iy237yysfCe013/l+kpDGfEG9xxHxm0dnxnAbJTPpG8,确定想要继续连接吗?

输入 yes 即可,之后系统会提示远程主机被添加到已知主机列表(该服务器信息会记录到本机 ~/.ssh/known_hosts 中)。

输入密码后,即可登录到远程服务器。

修改配置文件 [MacOS/Linux]

vim ~/.ssh/config
Host v1  # 别名:v1
HostName ip1(10.XX.XX.XX)
Port XX # 非默认端口22
User username # 设置用户名
ServerAliveInterval 60 # 每隔60s发送一次空包保持SSH连接

Host new_pikapikaq # 另一台服务器 别名
HostName ip2
User pikapikaq

保存后退出即可。

免密登录(设置公秘钥配对)

cd ~/.ssh/
ls # 查看是否有秘钥对
# 如果没有 则创建
ssh-keygen # 创建秘钥对

在这里插入图片描述
想免密码登录哪个服务器,就将公钥传给哪个服务器:把公钥中的内容复制到该服务器的 ~/.ssh/authorized_keys 中即可。

cat id_rsa.pub # 查看该公钥内容,并复制出来
ssh pikapikaq # 登录你的服务器
ls -a # 看看有没有.ssh 如果没有则创建
mkdir .ssh # 注意这是文件夹 如果要删除要加 -r
cd .ssh/
vim authorized_keys # 把上面复制的公钥粘贴进来 注意如果有多个秘钥要用回车隔开
# 保存退出即可
# 如果你想恢复成输入密码的状态,把 authorized_keys 里这个秘钥删除即可

也可以使用命令:ssh-copy-id -i ls.pub pikapikaq@ip1 49.XXX 一键把公钥送到服务器端。

注意: 这个公钥你可以给很多服务器共用,也可以对于不同服务器使用不同对的公私秘钥。

具体操作可参考我另一篇博客记录:SSH 免密登录 & SSH自动断开问题解决

在客户端执行服务器端的命令

在这里插入图片描述

ssh username@ip1 command
# 示例
ssh pikapikaq@ip1 ls -a  # 查看服务器pikapikaq的家目录的文件列表(包括隐藏文件)
# 在服务器端执行 for循环的标准输出 重定向到 当前客户端终端
ssh pikapikaq 'for ((i = 0; i < 10; i ++ )) do echo $i; done'
# 双引号中的$i不可以求值
ssh pikapikaq "for ((i = 0; i < 10; i ++ )) do echo $i; done"

在这里插入图片描述

SCP文件传输

scp source destination # 将 source 路径下的文件复制到 destination 中
# 一次复制多个文件到同一路径下
scp source1 source2 destination

# 复制文件夹 注意-r的位置 一定要在路径之前
scp -r ~/tmp myserver:/home/acs/  # 将本地家目录中的tmp文件夹复制到myserver服务器中的/home/acs/目录下 (绝对路径)
scp -r ~/tmp myserver:homework/   # 将本地家目录中的tmp文件夹复制到myserver服务器中的~/homework/目录下 (相对路径,默认相对于服务器家目录)

scp -r myserver:homework .  # 将myserver服务器中的~/homework/文件夹复制到本地的当前路径下

# 指定服务器的端口号 -P 要加在路径之前(注意是大写的P)
scp -P 22 source1 source2 destination

# 使用scp配置其他服务器的vim和tmux (把本地的这两个配置文件传送到服务器myserver端)
scp ~/.vimrc ~/.tmux.conf myserver: # 注意一定要加 :

注意:如果有重名文件会覆盖掉

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值