免密ssh和自定义服务器名字【远程连接服务器】

免密ssh和自定义服务器名字【远程连接服务器】

原理
实现免密登录需要 本地的公钥id_rsa.pub放在服务器上的 authorized_keys 文件中
服务器中的位置一般在~/.ssh.authorized_keys。若不存在,创建一个即可。
注意 authorized_keys 文件的权限必须是600,如果权限不对会影响登录。
touch authorized_keys
chmod 600 authorized_keys

本地生成公钥和私钥

ssh-keygen -t rsa

参数-t rsa表示使用rsa算法进行加密,执行后,会在当前用户/.ssh目录下找到id_rsa(私钥)id_rsa.pub(公钥)

正常情况下可以跳过上面的两个步骤。

服务器添加本地公钥ssh-copy-id

本地公钥一般在Home目录下面,按Ctrl + H显示以.开头的文件

ssh-copy-id -i id_rsa.pub 服务器用户名@服务器ip地址
例如
ssh-copy-id -i ~/.ssh/id_rsa.pub kkang@222.219.189.123

-i 指定本地的公钥文件地址
会自动将本地的公钥id_rsa.pub传入到服务器的~/.ssh/authorized_keys中

在Windows下面执行ssh-copy-id会出现以下bug:

ssh-copy-id : 无法将“ssh-copy-id”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,
请确保路径正确,然后再试一次。
所在位置 行:1 字符: 1
+ ssh-copy-id
+ ~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (ssh-copy-id:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

解决方案是先在powershell中,执行以下内容:

 
function ssh-copy-id([string]$userAtMachine, $args){   
    $publicKey = "$ENV:USERPROFILE" + "/.ssh/id_rsa.pub"
    if (!(Test-Path "$publicKey")){
        Write-Error "ERROR: failed to open ID file '$publicKey': No such file"            
    }
    else {
        & cat "$publicKey" | ssh $args $userAtMachine "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys || exit 1"      
    }
}

在Windows系统下,可能出现:

'ssh-copy-id' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

方法1:可以下载一个git然后点击Open Git Bash here,执行上述命令。https://git-scm.com/download/win
在这里插入图片描述
方法 2:使用 WSL(Windows Subsystem for Linux)
直接执行上述命令即可

方法 3:手动复制、

  1. 打开公钥文件:notepad $env:USERPROFILE\.ssh\id_rsa.pub
  2. 复制公钥内容。
  3. 登录到远程服务器:ssh username@remote_host
  4. 在远程服务器上创建 .ssh 目录(如果不存在的话):mkdir -p ~/.ssh
  5. 将公钥内容粘贴到 authorized_keys 文件:将公钥内容粘贴到 authorized_keys 文件:

使用别名登录config

在本地的.ssh目录下创建一个config文件,写入配置:

# Host 自定义连接服务器名称
Host 别名
# HostName 连接服务器IP
HostName xx.xx.xx.xx
# Port 服务器 ssh 对外开放的端口
Port 22
# 登录服务器的用户
User root
# 本地服务器密钥文件地址
IdentityFile ~/.ssh/id_rsa

一般情况下写下面这三个就ok,如下:
其中Host是别名

Host 3080
    HostName 221.201.184.123
    User kk

Host 4090
    HostName 221.201.184.134
    User kk

到时候只需ssh 4090,即221.201.184.134这里主机,就能直接连上。

相关推荐

  1. Linux服务器之间SSH登陆

    2024-07-09 19:40:07       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-09 19:40:07       51 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-09 19:40:07       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-09 19:40:07       44 阅读
  4. Python语言-面向对象

    2024-07-09 19:40:07       55 阅读

热门阅读

  1. linux的服务管理

    2024-07-09 19:40:07       27 阅读
  2. 等保测评未来发展趋势

    2024-07-09 19:40:07       24 阅读
  3. 区分标量注意力和向量注意力

    2024-07-09 19:40:07       31 阅读
  4. 天线介绍简略

    2024-07-09 19:40:07       22 阅读
  5. 工控、物联网、电力行业调试工具大全

    2024-07-09 19:40:07       38 阅读
  6. 你手上有offer吗?

    2024-07-09 19:40:07       27 阅读
  7. Node.js学习路线

    2024-07-09 19:40:07       29 阅读
  8. redis 一 认识redis

    2024-07-09 19:40:07       21 阅读