Ubuntu多个SSH秘钥管理

本文详细介绍了如何通过SSH密钥实现个人电脑与服务器之间的免密码登录,并提供了配置GitHub免密码登录的具体步骤。从生成SSH密钥到配置授权文件,再到测试连接及更改git项目的推送方式,确保读者能够顺利完成整个配置过程。

###单SSH秘钥管理

1、在个人电脑上执行下面的命令,即可生成ssh的key

$ ssh-keygen -t rsa
$ cd ~/.ssh
$ ll

2、将生成的id_rsa.pub拷贝到服务器/root/.ssh/下,若没有目录,则创建

3、登录远程服务器,这将是最后一次输入密码

ssh root@xxx.xxx.xxx.xxx (若不是22端口 -pxxxx)

4、登录服务器后,执行

# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

5、关闭终端,重新打开测试,免密码登录成功。

###配置github免密码登录(需要再创建SSH的秘钥)

1、执行下面命令,可以看到~/.ssh目录下,又生成了两个文件git_rsa和git_rsa.pub

$ ssh-keygen -t rsa -C "youremail@email.com" -f ~/.ssh/git_rsa
$ cd ~/.ssh
$ ll

2、在~/.ssh目录下,新建config文件。

$ vim config

Host github.com
Hostname github.com
User git
Identityfile ~/.ssh/git_rsa

$ sudo chmod +600 ./config

3、这两个选项会在以后的使用过程中自动添加到代码中。

$ git config --global user.name  "用户名或者用户ID"
$ git config --global user.email  邮箱

4、登录github,Setting--->SSH and GPG keys--->New SSH key 将git_rsa.pub中的内容复制到文本框中,保存。

5、命令行输入,测试连接是否成功,若出现Permission denied (publickey),说明连接失败,请删除git_rsa和git_rsa.pub后,重复1——4步。

$ ssh -T git@github.com
Hi username! You've successfully authenticated, but GitHub does not provide shell access.

6、将git项目push到github。

    6.1首先查看git当前的推送方式
           ```
                $ git remote -v
                origin https://github.com/xxxxxx/someproject.git (fetch) 
                origin https://github.com/xxxxxx/someproject.git (push)
            ```
    6.2将https改为ssh的方式
            ```
            $ git remote set-url origin git@github.com:xxxxxx/someproject.git
            ```
    6.3在git项目的根目录下执行
            ```
             $ git push
            ```

7、推送成功

转载于:https://my.oschina.net/OriginLeon/blog/806080

### 使用 SSHUbuntu 终端中进行连接 为了通过 SSH 进行安全的远程登录,可以使用如下命令来建立到目标服务器的安全连接: ```bash ssh username@remote_host ``` 此命令会尝试使用默认设置下的公钥认证或密码验证方式完成身份确认[^1]。 对于首次连接的新主机,系统可能会提示关于主机密钥指纹的信息并询问是否继续连接。输入 `yes` 并按回车键即可继续操作。之后会被要求提供用户的密码除非已经配置好了无密码访问机制。 如果希望实现基于密钥的身份验证而不是每次都需要手动输入密码,则需先创建一对SSH密钥对,并将公共部分复制至远端机器上相应位置。这可以通过下面这条指令一次性完成目录准备、权限调整以及追加授权文件的工作: ```bash cat ~/.ssh/id_rsa.pub | ssh user_name@remote_host "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys" ``` 上述过程完成后,在后续发起新的SSH会话时就不再需要再单独输入账户密码了,前提是本地计算机保存有匹配私钥并且该私钥未被加密保护[^3]。 另外一种简化的方式是利用工具自动生成秘钥并对远程主机执行必要的配置工作,比如使用带有 `-i` 参数选项的 `ssh-copy-id` 命令配合生成带口令短语(passphrase) 的密钥对,从而增强安全性的同时也方便管理多个不同环境之间的互信关系[^4]。 #### 创建具有口令短语(Passphrase)保护的SSH密钥对实例 ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 这里 `-t` 指定算法类型为RSA, `-b` 设置位数大小以提高强度而 `-C` 添加了一个标签用于识别用途。 最后要提到的是,当涉及到从 Windows 环境下产生的 `.ppk` 私钥格式转换成适用于 Linux 或 macOS 下的标准 OpenSSH 格式的场景时,可借助 PuTTY 自带实用程序 PuttyGen 完成这项任务。具体做法参照给定的方法一中的说明,即运行以下命令序列来进行格式转变以便于跨平台兼容性支持: ```bash puttygen id_dsa.ppk -O private-openssh -o id_dsa ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值