2019独角兽企业重金招聘Python工程师标准>>>

使用 SSH config 文件

ssh的介绍及使用参看:SSH简介创建SSH密钥对

  • https://nerderati.com/2011/03/17/simplify-your-life-with-an-ssh-config-file/
  • https://linux.die.net/man/5/ssh_config

配置文件

ssh程序可以从以下途径获取配置参数:

  1. 命令行选项
  2. 用户配置文件 (~/.ssh/config)
  3. 系统配置文件 (/etc/ssh/ssh_config)

配置文件可分为多个配置区段,每个配置区段使用Host来区分。我们可以在命令行中输入不同的host来加载不同的配置段。

对每一个配置项来说,首次获取的参数值将被采用,因此通用的设置应该放到文件的后面,特定host相关的配置项应放到文件的前面。

常用配置项

下面介绍一些常用的SSH配置项:

Host

Host配置项标识了一个配置区段。

ssh配置项参数值可以使用通配符:*代表0~n个非空白字符,?代表一个非空白字符,!表示例外通配。

我们可以在系统配置文件中看到一个匹配所有host的默认配置区段:

$ cat /etc/ssh/ssh_config | grep '^Host'
Host *

这里有一些默认配置项,我们可以在用户配置文件中覆盖这些默认配置。

GlobalKnownHostsFile

指定一个或多个全局认证主机缓存文件,用来缓存通过认证的远程主机的密钥,多个文件用空格分隔。默认缓存文件为:/etc/ssh/ssh_known_hosts, /etc/ssh/ssh_known_hosts2.

HostName

指定远程主机名,可以直接使用数字IP地址。如果主机名中包含 ‘%h’ ,则实际使用时会被命令行中的主机名替换。

IdentityFile

指定密钥认证使用的私钥文件路径。默认为 ~/.ssh/id_dsa, ~/.ssh/id_ecdsa, ~/.ssh/id_ed25519 或 ~/.ssh/id_rsa 中的一个。文件名称可以使用以下转义符:

'%d' 本地用户目录
'%u' 本地用户名称
'%l' 本地主机名
'%h' 远程主机名
'%r' 远程用户名

可以指定多个密钥文件,在连接的过程中会依次尝试这些密钥文件。

Port

指定远程主机端口号,默认为 22 。

User

指定登录用户名。

UserKnownHostsFile

指定一个或多个用户认证主机缓存文件,用来缓存通过认证的远程主机的密钥,多个文件用空格分隔。默认缓存文件为: ~/.ssh/known_hosts, ~/.ssh/known_hosts2.

还有更多参数的介绍,可以参看用户手册:

$ man ssh config

示例

以下连接为例:

SSH 服务器: ssh.test.com
端口号: 2200
账户: user
密钥文件: ~/.ssh/id_rsa_test

## 密码认证登录方式为:

$ ssh -p 2200 -i ~/.ssh/id_rsa_test user@ssh.test.com
user@ssh.test.com's password:

## 密钥认证登录方式:

$ ssh-copy-id -i ~/.ssh/id_rsa_test user@ssh.test.com
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
user@ssh.test.com's password:Number of key(s) added: 1Now try logging into the machine, with:   "ssh 'user@ssh.test.com'"
and check to make sure that only the key(s) you wanted were added.$ ssh user@ssh.test.com

## 使用配置文件方式

有如下配置文件:

$ vim ~/.ssh/config
Host sshtestHostName ssh.test.comUser userPort 2200IdentityFile ~/.ssh/id_rsa_testHost ssttest2HostName ssh.test2.comUser user2Port 2345IdentityFile ~/.ssh/id_rsa_test2

使用配置文件登录:

$ ssh sshtest

## SSH sock5 channel

$ ssh -f -N -L 9906:127.0.0.1:3306 coolio@database.example.com
# -f puts ssh in background
# -N makes it not execute a remote command

This will forward all local port 9906 traffic to port 3306 on the remote database.example.com server, letting me point my desktop GUI to localhost (127.0.0.1:9906) and have it behave exactly as if I had exposed port 3306 on the remote server and connected directly to it.

Now I don't know about you, but remembering that sequence of flags and options for SSH can be a complete pain. Luckily, our config file can help alleviate that:

Host tunnelHostName database.example.comIdentityFile ~/.ssh/coolio.example.keyLocalForward 9906 127.0.0.1:3306User coolio

Which means I can simply do:

$ ssh -f -N tunnel

参看

  • SSH简介
  • 创建 SSH 密钥对
  • https://nerderati.com/2011/03/17/simplify-your-life-with-an-ssh-config-file/

转载于:https://my.oschina.net/u/2306127/blog/3030253

使用 SSH config 文件相关推荐

  1. 配置文件~/.ssh/config和/etc/ssh/ssh_config

    一般不需要修改OpenSSH客户端配置文件.对于给定用户,共有两个配置文件:~/.ssh/config(用户专用)和/etc/ssh /ssh_config(全局共享).要按照该顺序读取这些文件,对于 ...

  2. 学习任务01-配置自己ssh config

    任务完成标准: minipc 中 ssh flash 直接登录我们的测试服务器 当我们使用ssh 进行远程连接时,一般使用如下命令 $ssh user@ip-address -p port $ ssh ...

  3. linux ssh公钥文件,linux配置ssh公钥认证

    在两台linux主机上由于环境的需要,经常要配置两台主机之间免密码登录,这就要用到key认证,也就是所谓的公私钥认证.便于理解,我这里指定两台主机为 A 和 B .如果A主机想免密码登录到B主机上,则 ...

  4. ubuntu下wget下载Linux内核源码、make生成.config文件

    根据资料,如果要调试Linux内核源码,需要自己编译内核源码:原因是,一般下载的内核并不是为调试而编译的,要在编译时开启 "Compile the kernel with debug inf ...

  5. 使用ssh config配置文件来管理ssh连接

    我本人其实及其烦使用配置文件这种东西,有时候看到巨大又复杂的配置文件,甚至复杂过代码的时候,总感觉设计配置文件的人有些本末倒置. 但是ssh这个配置文件真的非常简单好用,让我稍微体验了一次配置文件使用 ...

  6. git免密pull指定ssh密钥文件

    git免密pull指定ssh密钥文件 免密登陆其他机器.获取资源一直是一种非常高效.高度自动化.智能化的方式.技术爱好者不可不知,且最好知行合一. 1.多机共用密钥 在部署时总是希望被部署的服务器上可 ...

  7. Windows 下解决 VsCode 使用 SSH 连接报 Bad owner or permissions on C:\\Users\\Administrator/.ssh/config 错误

    1.在D盘新建文件夹SSH.ssh. 2.在Vscode中打开settings,找到Extensions->Remote-SSH,将config文件设置为下列路径可以解决问题. 参考 https ...

  8. vscode连接远程服务器遇到Bad owner or permissions on C:\\Users\\XXX/.ssh/config的解决方法

    一.vscode连接服务器 vscode连接远程服务器(傻瓜式教学) 二.出现Bad owner or permissions on C:\Users\XXX/.ssh/config vscode中报 ...

  9. Bad owner or permissions on C:\\Users\\XX/.ssh/config

    在win10上使用vscode链接远程服务器时,一直报这个错,然后ssh就连接不上了 尝试了几次后发现只需要找到这个config文件,右键-属性-安全-高级,选择当前账户编辑,删除当前账户的完全控制权 ...

  10. Bad owner or permissions on .ssh/config的解决

    Bad owner or permissions on .ssh/config的解决 当我们在自己的服务器上搭建Git远程仓库,并让本地关联到远程仓库的时候,我们需要写一个config来让本地可以关联 ...

最新文章

  1. 清华大学大数据研究中心给您拜年啦!
  2. Java知识点26——模拟12306买票过程、模拟龟兔赛跑的过程、静态代理例子
  3. 一个个人网站如何融资一千万
  4. vue 项目配合zepto的巨坑
  5. 双十一真的是全年最便宜的么?
  6. GLIBCXX_3.4.21 not found(转载)
  7. 【转】IDEA类和方法注释模板设置(非常详细)
  8. 远程登录服务器时,提示未被授予终端服务器登录权限?
  9. js获取引用的css样式,js获取css样式方法
  10. JDBC(尚硅谷宋红康老师笔记)
  11. 秒杀系统设计思路笔记
  12. Field not found; typically this occurs with arrays which are not mapped as single value
  13. Papi酱: 左手奶瓶右手尿布× 左手papitube右手娱乐圈√
  14. 百度白皮书5.0解读如何合理设置展开全文功能
  15. 智能硬件产品系列 之 MTK6580方案篇(一)硬件选型
  16. 《让大脑自由》-- 之释放天赋的12条定律
  17. 重新认识java(十一)---- java中的数组
  18. 如何用MCU来控制21489调音?
  19. 【解决】快速启动栏消失了
  20. 深度剖析 —— 文件操作

热门文章

  1. Linux ssh登陆命令
  2. 《钻哥带您了解产品原型》(Yanlz+Unity+XR+需求分析+核心思路+产品核心+生产流程+制作核心+销售核心+立钻哥哥+==)
  3. html 插入虾米音乐,虾米音乐导入导出方法
  4. database rough 1
  5. XMLHttpRequest 状态码:readyState、status
  6. WCDMA空口速率和Iub口速率的计算方法和限制
  7. 数据可视化之美-动态图绘制(以Python为工具)
  8. Structed Streaming(Continuous Processing报错):StreamingQueryException;java.util.NoSuchElementException
  9. Hexo+腾讯云+Icarus主题 搭建自定义个人博客
  10. 计算机网络-自顶向下方法-笔记【第1章-概述】