首页
学习
活动
专区
圈层
工具
发布

ssh

作者头像
h3110_w0r1d
发布2024-02-19 19:33:08
发布2024-02-19 19:33:08
6860
举报

ssh

远程登录原理

  1. 安全,即使被截获也没毛病

远程登录服务器语法

  1. ssh user@hostname
  2. user:用户名
  3. hostname:IP地址或域名

初次登录会提示

  1. 初次登录会提示
  1. 登录后服务器的信息会记录在~/.ssh/known_hosts文件夹中
  2. 然后输入密码即可登录到服务器中
  3. 默认登录端口为22,如果想要登录某一特定端口,加上 -p 参数
  4. 假设想要登录23号端口:ssh username@hostname -p 23

配置文件

在客户端中(主机,本子)中创建文件 ~/.ssh/config config文件就是用来创建别名机制的

在文件中输入

代码语言:javascript
复制
Host myserver1
    HostName IP地址或域名
    User 用户名

Host myserver2
    HostName IP地址或域名
    User 用户名

之后再使用服务器时,可以直接使用别名myserver1 和 myserver2

免密登录

  1. 在本地(本子上),ssh-keygen,会在.ssh/文件夹下生成密钥:id_rsa和公钥id_rsa.pub
  2. 之后想要免密登录哪个服务器,就将本地的公钥传给哪个服务器即可
  3. 在服务器中的.ssh/路径下创建一个 authorized_keys 文件,然后将本地生成的密钥复制到这个文件中,如果原本就有这个文件,那么只需要在后面加上密钥即可
  4. 例如,想要免密登录myserver服务器,就将公钥中的内容,复制到myserver中的~/.ssh/authorized_keys文件里即可
  5. 也可以使用ssh-copy-id myserver一键添加公钥
  6. 公钥添加到.ssh/authorized_keys中即可免密登录
  7. 误区:在服务器上的生成了密钥,传到了服务器本身的authorized_keys或者主机上的,不能自己登自己
  8. 可以将自己的密钥传递给多个服务器,当服务器很多时,可以实现只需服务器名字登陆

执行命令

为什么

  1. 当我们需要自动化运维时,需要实现一步:登进去,执行一个命令之后,退出来
  2. 当有大量服务器时,如果登进去,实现一个命令之后,再退出来就会消耗大量的人力时间

怎么做

命令格式

ssh登录之后直接加上命令

代码语言:javascript
复制
ssh user@hostname command

这个命令的执行是在服务器中实现的,结果重定向到本地

注意:单引号中的$i可以求值

代码语言:javascript
复制
ssh myserver 'for ((i = 0; i < 10; i ++ )) do echo $i; done'

双引号中的$i不可以求值

代码语言:javascript
复制
ssh myserver "for ((i = 0; i < 10; i ++ )) do echo $i; done"

scp传文件

命令格式(可以记成ssh的cp,scp)

  1. scp source destination
  2. 将source路径下的文件复制到destination中,先从后到,和cp命令一样一次复制多个文件
  3. scp source1 source2 destination
复制文件夹
  1. scp -r ~/tmp myserver:/home/acs -r放在source和destination的前面
  2. 服务器和本地的地址都可以作为source或者destination,即既可以将文件从本地传到服务器上,也可以从服务器上传到本地
  3. 本地文件使用相对路径或绝对路径都可以
  4. 服务器上的路径:服务器的地址或别名:地址(这个地址可以写绝对路径,也可以写相对于根目录的相对地址,不写的话默认为根目录
指定服务器的端口号
代码语言:javascript
复制
scp -P source1 source2 destination
  1. 注意,这个地方的-P是大写的,ssh的-p是小写的
  2. scp的-r和-P参数尽量加在source和destination之前
服务器之间传
  1. scp命令不止限于主机和服务器之间传文件,也可以在两台服务器之间传文件,即source和destination都可以为服务器的路径
  2. 但是必须两台服务器之间的授权非常完整,否则会报错
  3. 所以可以将一台服务器上的文件传到本地,再由本地传到另一台服务器上

使用scp配置其它服务器的vim和tmux

vim的配置文件: .vimrc

tmux的配置文件: .tmux.conf

配置vim和tmux只需要将vim和tmux的配置文件传到服务器的根目录下即可

代码语言:javascript
复制
scp .vimrc .tmux.conf myserver:
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-07-14,如有侵权请联系 [email protected] 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 [email protected] 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ssh
    • 远程登录原理
    • 远程登录服务器语法
      • 初次登录会提示
    • 配置文件
    • 免密登录
    • 执行命令
      • 为什么
      • 怎么做
    • scp传文件
      • 命令格式(可以记成ssh的cp,scp)
      • 使用scp配置其它服务器的vim和tmux
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档