使用SSH的配置文件可以在很大程度上方便各种操作,特别适应于有多个SSH帐号、使用非标准端口或者写脚本等情况。

man ssh_config

可以查看手册

如果之前是用密码方式来登录SSH,需要先改用证书方式。可以看最后面生成SSH证书

配置文件

用户配置文件在~/.ssh/config,没有的话新建一个。基本的写法是

Host 名称(自己决定,方便输入记忆的)
HostName 主机名
User 登录的用户名

假设有两个SSH帐号,一个是github的,一个是其他服务器的,私钥都是~/.ssh/id_rsa,可以这样写:

Host github.com
HostName github.com
User git Host server
HostName 服务器地址
User 登录用户名

注意,github的Host必须写成“github.com”。你可以会有其他要求,比如指定端口号、绑定本地端口,这些都可以通过man来查询,比如

Port 端口号
DynamicForward 本地端口号

如果服务器同时有ipv4/ipv6地址,HostName使用域名会比较方便

使用

有了这些配置,很多操作就非常简化了。比如登录服务器

ssh server

传输文件

scp server:~/test . 

如果使用Putty等工具,可能需要一些其他操作(转换私钥格式,貌似),自行搜索吧

生成SSH证书

先在本地生成密钥

ssh-keygen -t rsa

会询问将密钥放在何处,默认即可。然后是输入密码,留空(否则你登录不仅需要私钥还要输入密码)。

完成后在~/.ssh目录下会生成另个文件id_rsa和id_rsa.pub,一个私钥一个公钥。之后将id_rsa.pub上传到服务器端用于SSH登录的用户的家目录下。执行

cat id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
rm id_rsa.pub

修改服务器端的sshd配置。编辑/etc/ssh/sshd_config如下

PubkeyAuthentication yes
PasswordAuthentication no

之后重启sshd服务

ssh-config的使用的更多相关文章

  1. .ssh/config简单使用

    转自:http://blog.lizhigang.net/archives/265 .ssh/config简单使用 需求:  工作的电脑经常会存储不同的key,并且使用不同的用户登录linux系统.如 ...

  2. Bad owner or permissions on .ssh/config

    Bad owner or permissions on $HOME/.ssh/config The ssh with RHEL 4 is a lot more anal about security ...

  3. SSH Config 那些你所知道和不知道的事 (转)

    原文地址:https://deepzz.com/post/how-to-setup-ssh-config.html SSH(Secure Shell)是什么?是一项创建在应用层和传输层基础上的安全协议 ...

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

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

  5. ssh config配置

    使用ssh config文件可以简化ssh连接输入参数,直接从config读取 (1)建立config文件 config文件位置在~/.ssh/config 如果不存在,可以创建一个 (2)confi ...

  6. git ssh免登陆,以及ssh config

    git去连接github或gitlab上的远程仓库,可以使用ssh方式,也可以使用git的账号密码登录 这里介绍使用ssh方式实现免登陆(第一步和第二步即可实现)   第一步:生成ssh秘钥 ssh- ...

  7. Bad owner or permissions on $HOME/.ssh/config

    摘自:https://www.cnblogs.com/ytjjyy/p/4076442.html The ssh with RHEL 4 is a lot more anal about securi ...

  8. 解决Bad owner or permissions on .ssh/config 的问题

    在使用gei fetch 或者 sftp的时候,出现 Bad owner or permissions on .ssh/config的问题的解决办法 修改.ssh/config的权限: sudo ch ...

  9. .ssh/config 文件的解释算法及配置原则

    前言 SSH 是连接远程主机最常用的方式,尽管连接到耽搁主机的基本操作非常直接,但当你开始使用大量的远程系统时,这就会成为笨重和复杂的任务. 幸运的是,OpenSSH 允许您提供自定义的客户端连接选项 ...

  10. SSH Config 管理多主机

    使用 一般我们使用ssh连接远程主机的时候,使用命令是: ssh root@ip ssh –i [identity-file] -p [port] user@hostname 但是如果ip地址过多,其 ...

随机推荐

  1. maven pom文件标签含义

    1.dependency里面的scope dependency里面的classifier dependency里面的type dependency里面的systemPath dependency里面的 ...

  2. c语言模块化编程

    C语言模块化编程(封装) 模块即是一个.c 文件和一个.h 文件的结合,头文件(.h)中是对于该模块接口的声明.模块化的实现方法和实质:将一个功能模块的代码单独编写成一个.c文件,然后把该模块的接口函 ...

  3. C++、java、python的一些区别

    1.变量类型 变量赋值命名不同 Python 中的变量赋值不需要类型声明 counter = 100 # 赋值整型变量 miles = 1000.0 # 浮点型 name = "John&q ...

  4. MySQL数据表

    创建数据表 CREATE TABLE IF NOT EXISTS ([列名column][类型type][约束可选])   查看数据表结构 DESC <表名> 修改数据表结构 ALTER ...

  5. 【leetcode】1179. Reformat Department Table

    题目如下: SQL Schema Table: Department +---------------+---------+ | Column Name | Type | +------------- ...

  6. MySQL 运维管理平台

    github: https://github.com/XiaohaoYu/mysql_platform

  7. anaconda 安装caffe,cntk,theano-未整理

    一,anancona 安装 https://repo.anaconda.com/archive/ conda create -n caffe_gpu -c defaults python=3.6 ca ...

  8. k8s安装报错 Error: unknown flag: --experimental-upload-certs

    今天安装k8sV1.16的版本时候,执行突然发现命令不对,之前安装V1.15的时候是可以的,可能是版本升级的原因. 解决: unknown flag: --experimental-upload-ce ...

  9. sqli-labs(32)

    0x1查看源代码 (1)代码关键点 很明显,代码中利用正则匹配将 [ /,'," ]这些三个符号都过滤掉了 preg_replace 0x2 宽字符注入 (1)前言 在mysql中,用于转义 ...

  10. C#实现读取指定盘符硬盘序列号的方法

      文章主要介绍了C#实现读取指定盘符硬盘序列号的方法,涉及C#针对硬件属性的相关操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了C#实现读取指定盘符硬盘序列号的方法.分享给大家供 ...