使用 SSH config 文件
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
程序可以从以下途径获取配置参数:
- 命令行选项
- 用户配置文件 (~/.ssh/config)
- 系统配置文件 (/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 文件相关推荐
- 配置文件~/.ssh/config和/etc/ssh/ssh_config
一般不需要修改OpenSSH客户端配置文件.对于给定用户,共有两个配置文件:~/.ssh/config(用户专用)和/etc/ssh /ssh_config(全局共享).要按照该顺序读取这些文件,对于 ...
- 学习任务01-配置自己ssh config
任务完成标准: minipc 中 ssh flash 直接登录我们的测试服务器 当我们使用ssh 进行远程连接时,一般使用如下命令 $ssh user@ip-address -p port $ ssh ...
- linux ssh公钥文件,linux配置ssh公钥认证
在两台linux主机上由于环境的需要,经常要配置两台主机之间免密码登录,这就要用到key认证,也就是所谓的公私钥认证.便于理解,我这里指定两台主机为 A 和 B .如果A主机想免密码登录到B主机上,则 ...
- ubuntu下wget下载Linux内核源码、make生成.config文件
根据资料,如果要调试Linux内核源码,需要自己编译内核源码:原因是,一般下载的内核并不是为调试而编译的,要在编译时开启 "Compile the kernel with debug inf ...
- 使用ssh config配置文件来管理ssh连接
我本人其实及其烦使用配置文件这种东西,有时候看到巨大又复杂的配置文件,甚至复杂过代码的时候,总感觉设计配置文件的人有些本末倒置. 但是ssh这个配置文件真的非常简单好用,让我稍微体验了一次配置文件使用 ...
- git免密pull指定ssh密钥文件
git免密pull指定ssh密钥文件 免密登陆其他机器.获取资源一直是一种非常高效.高度自动化.智能化的方式.技术爱好者不可不知,且最好知行合一. 1.多机共用密钥 在部署时总是希望被部署的服务器上可 ...
- 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 ...
- vscode连接远程服务器遇到Bad owner or permissions on C:\\Users\\XXX/.ssh/config的解决方法
一.vscode连接服务器 vscode连接远程服务器(傻瓜式教学) 二.出现Bad owner or permissions on C:\Users\XXX/.ssh/config vscode中报 ...
- Bad owner or permissions on C:\\Users\\XX/.ssh/config
在win10上使用vscode链接远程服务器时,一直报这个错,然后ssh就连接不上了 尝试了几次后发现只需要找到这个config文件,右键-属性-安全-高级,选择当前账户编辑,删除当前账户的完全控制权 ...
- Bad owner or permissions on .ssh/config的解决
Bad owner or permissions on .ssh/config的解决 当我们在自己的服务器上搭建Git远程仓库,并让本地关联到远程仓库的时候,我们需要写一个config来让本地可以关联 ...
最新文章
- 清华大学大数据研究中心给您拜年啦!
- Java知识点26——模拟12306买票过程、模拟龟兔赛跑的过程、静态代理例子
- 一个个人网站如何融资一千万
- vue 项目配合zepto的巨坑
- 双十一真的是全年最便宜的么?
- GLIBCXX_3.4.21 not found(转载)
- 【转】IDEA类和方法注释模板设置(非常详细)
- 远程登录服务器时,提示未被授予终端服务器登录权限?
- js获取引用的css样式,js获取css样式方法
- JDBC(尚硅谷宋红康老师笔记)
- 秒杀系统设计思路笔记
- Field not found; typically this occurs with arrays which are not mapped as single value
- Papi酱: 左手奶瓶右手尿布× 左手papitube右手娱乐圈√
- 百度白皮书5.0解读如何合理设置展开全文功能
- 智能硬件产品系列 之 MTK6580方案篇(一)硬件选型
- 《让大脑自由》-- 之释放天赋的12条定律
- 重新认识java(十一)---- java中的数组
- 如何用MCU来控制21489调音?
- 【解决】快速启动栏消失了
- 深度剖析 —— 文件操作
热门文章
- Linux ssh登陆命令
- 《钻哥带您了解产品原型》(Yanlz+Unity+XR+需求分析+核心思路+产品核心+生产流程+制作核心+销售核心+立钻哥哥+==)
- html 插入虾米音乐,虾米音乐导入导出方法
- database rough 1
- XMLHttpRequest 状态码:readyState、status
- WCDMA空口速率和Iub口速率的计算方法和限制
- 数据可视化之美-动态图绘制(以Python为工具)
- Structed Streaming(Continuous Processing报错):StreamingQueryException;java.util.NoSuchElementException
- Hexo+腾讯云+Icarus主题 搭建自定义个人博客
- 计算机网络-自顶向下方法-笔记【第1章-概述】