Home Archives Categories Tags

SSH 常用命令

发布时间: 更新时间: 总字数:659 阅读时间:2m 作者: 分享

本文中介绍如何在一台服务器中,生成 ssh-key,并为不同地址配置不同 ssh key,该方法适合为不同 git client 配置不同 key。

生成 ssh key

ssh-keygen

通常,要为多个邮箱账号分别生成公钥,公私钥都是放到~/.ssh下面,生成步骤如下:

mkdir -p ~/.ssh
cd ~/.ssh
ssh-keygen -t rsa -C "me@xiexianbin.cn"  # 把这个文件命名为id_rsa_github,然后一路回车
ssh-keygen -t rsa -C "10972072@qq.com"   # 把这个文件命名为id_rsa_aliyun,然后一路回车
ssh-keygen -t rsa -b 4096 -C "me@xiexianbin.cn"

将 SSH 私钥增加到 ssh-agent:

ssh-add ~/.ssh/id_rsa

查看已经 add 的SSH KEY:

ssh-add -l

若报错:Could not open a connection to your authentication agent.,执行:

ssh-agent bash

PS:将 ~/.ssh/id_rsa.pub 添加到目标及其的 .ssh/authorized_keys 可以实现 ssh 证书登录。

修改密码

ssh-keygen -f ~/.ssh/id_rsa -p

免密码登录

ssh-copy-id $IP    #$IP为本虚机地址,按照提示输入yes 和密码,然后可以无密码登录服务器

上述过程,是将 id_rsa.pub 添加到对应主机的 ~/.ssh/authorized_keys 目录下。

多个服务器分别配置key

此时在~/.ssh下面生成了两对公私钥,把id_rsa_aliyun.pub的内容贴到aliyun的git服务的ssh keys中,把id_rsa_github.pub的内容贴到github的ssh keys中。然后touch一个配置文件:

touch ~/.ssh/config
chmod 600 ~/.ssh/*

最后在~/.ssh/config中添加如下内容即可:

host code.aliyun.com
    # user xiexianbin
    hostname code.aliyun.com
    port 22
    identityfile ~/.ssh/id_rsa_aliyun

host github.com
    user git
    hostname github.com
    port 22
    identityfile ~/.ssh/id_rsa_github
Host 10.0.0.* 10.0.1.*
  port 22
  IdentityFile ~/.ssh/id_rsa
  User root

测试

然后用ssh命令分别测试:

ssh -T git@github.com

调试

如果到这里你没有成功的话,可以 –debug,比如测试 github:

ssh -vT git@github.com

-v 是输出编译信息,然后根据编译信息自己去解决问题吧。

配置免确认

UserKnownHostsFile=/dev/null
StrictHostKeyChecking=no
LogLevel=ERROR

ssh 免 hostkey check 登录:

sudo ssh -o StrictHostKeyChecking=no -i .ssh/ssh_key.key ubuntu@10.0.0.1

自动登陆文件

cat 10.0.0.1
#!/bin/sh  
  
user="root"
host=`basename $0`

ssh -i ~/.ssh/id_rsa $user@$host
最新评论
加载中...