ssh常用操作

ssh常用操作

SSH是一种安全协议,ssh是该协议的客户端程序,openssh-server则是该协议的服务端程序

常用系统都自带了ssh客户端程序,服务端程序则可能要安装

密码远程登陆

前提:服务器安装了openssh-server,未安装时使用管理员权限安装sudo apt install openssh-server

检查ssh.service状态,ubuntu使用systemd,执行sudo systemctl status sshd

显示active则服务已启动,输入q退出

未启动则执行启动命令sudo systemctl start sshd

远程登录命令ssh 服务器用户名@服务器地址

默认登录22端口,回车之后会要求输入密码,密码正确就可以登陆使用服务器资源

密钥远程登陆

ssh支持使用密钥远程登陆,使用密钥可以实现免密登录,更安全也更方便

  1. 生成密钥对,在本地执行ssh-keygen,一路回车(不使用密码验证,否则以后每次使用要输入密码),将在用户home目录下.ssh文件夹生成rsa密钥对(ssh支持多种算法的密钥对,rsa是最常用的一种),其中id_rsa为私钥(自己妥善保管,不能共享出去),id_rsa.pub为公钥(共享给服务器,完成密钥验证)
  1. ssh使用密钥对,ssh远程登录前将公钥内容拷贝到服务器,最快捷的方式是使用ssh-copy-id 命令,使用方式为ssh-copy-id 服务器用户名@服务器地址 ,第一次执行该命令会弹出对话框,输入yes后回车,输入服务器用户密码回车

该命令会将默认的公钥内容(现在是id_rsa.pub)拷贝到服务器$HOME/.ssh/authorized_keys 文件,每个公钥在这个文件占一行

如果本地有多个公钥 ,需要指定使用特定公钥连接服务器时,使用-i选项,例如

ssh-copy-id -i ~/.ssh/指定的公钥文件 服务器用户名@服务器地址

注意:Windows默认不带ssh-copy-id 命令,Windows版gitbash自带了该命令,可以用gitbash执行该命令,如果没有gitbash,手动 将id_rsa.pub 文件的内容拷贝到服务器的$HOME/.ssh/authorized_keys 文件中效果也是一样的(不要拷贝多余的字符)

  1. 完成了以上步骤,连接服务器时就可以实现免密码登录了,登录方式还是

ssh 服务器用户名@服务器地址

此时会发现直接能登录上服务器而不需要输入密码了·

  1. ssh支持使用配置文件,使用配置文件在配置了密钥的情况下,相当于给服务起了别名,在本地.ssh 目录下新建config文件,最简单的内容格式如下

    Host 服务器别名

    复制代码
    HostName 服务器地址
    
    User 服务器用户名
    
    IdentityFile 本地私钥路径

例如config文件为:

复制代码
Host u

   HostName 192.168.6.10

   User soda

   IdentityFile ~/.ssh/id_rsa

文件保存后,就可以直接在本地执行ssh u 连上服务器,简化了登录流程,而不用每次查看服务器ip,输入密码了

git仓库使用公钥

在git仓库(如GitHub)克隆代码时,如果使用使用SSH协议,会要求先添加ssh公钥到服务器

按照GitHub的提示点击该链接添加公钥,将本地公钥内容复制,拷贝到GitHub服务器,Tile填一个有意义的标记,可以随便填,最后点击Add SSH Key

添加完成后,本地就可以免密通过git clone该代码仓库了

备注:GitHub、GitLab、Gitee等等这些托管平台操作逻辑都差不多,不再赘述;

总结SSH密钥操作就是3步:

  1. 生成密钥对

  2. 把密钥对的公钥内容拷贝到服务器

  3. 本地使用ssh相关操作

相关推荐
一技安身40 分钟前
【信创】银河麒麟V10服务器使用安装光盘Packages自建本地yum源
linux·运维·服务器
码农客栈1 小时前
Linux I2C驱动实验
linux·运维·驱动开发
爱喝水的鱼丶2 小时前
SAP-ABAP:隐式/显式增强开发规范与避坑指南:10 类典型错误与运维方案
运维·性能优化·sap·abap·增强·经验交流
企业解惑小助手3 小时前
如何禁止文字复制?企业文档防复制项目需求拆解方案
运维·数据库·安全
蓝速科技3 小时前
酒店门店 AI 数字人前台场景适配与落地指南
大数据·运维·数据结构·数据库·人工智能·科技
yyk333244 小时前
Linux常见的基础命令
linux·运维·服务器
名字还没想好☜4 小时前
Docker 镜像瘦身进阶:用 distroless/scratch 把 Go 服务打到 10MB,以及没 shell 怎么调试
运维·docker·容器·golang·kubernetes
JavaPub-rodert4 小时前
Docker 深入理解:从容器原理到生产环境最佳实践
运维·docker·容器
aiot189189352185 小时前
核芯物联蓝牙AOA高精度定位生态合作案例分享金库定位踩坑实录
大数据·运维·网络·人工智能·蓝牙aoa
TomEval5 小时前
【接口自动化】13 - 接口数据驱动与报告
运维·windows·自动化