1. 生成本地密钥对
用Tabby打开PowerShell,运行ssh-keygen
# 建立密钥对,制定格式为rsa
ssh-keygen -t rsa
# Generating public/private rsa key pair.
# Enter file in which to save the key (/root/.ssh/id_rsa): <== 按 Enter
# Created directory '/root/.ssh'.
# Enter passphrase (empty for no passphrase): <== 输入密钥锁码,或直接按 Enter 留空
# Enter same passphrase again: <== 再输入一遍密钥锁码
# Your identification has been saved in /root/.ssh/id_rsa. <== 私钥
# Your public key has been saved in /root/.ssh/id_rsa.pub. <== 公钥
# The key fingerprint is:
# 0f:d3:e7:1a:1c:bd:5c:03:f1:19:f1:22:df:9b:cc:08 root@host
为本地的 私钥给定正确的权限,如果是ssh-keygen生成的,就可以不用管,如果是从别处拷贝来的,需要修改权限
# 进入用户目录的.ssh目录
cd ~/.ssh
# 对id_rsa设置600权限
chmod 600 id_rsa
对.ssh目录设置700权限
chmod 700 .
2. 远程服务器授权
2.1. 查看ssh服务的状态
# 进入root账户,其他操作相似不赘述
sudo -i
service ssh status
反馈 Loaded: error (Reason: No such file or directory),说名没有安装ssh服务,按照第二步:安装ssh服务
反馈Active: inactive (dead)说明已经安装了ssh服务,但是没有开启。按照第三步:开启ssh服务。
反馈Active: active (running) since … 说明ssh服务已经正在运行。
2.2. 安装ssh服务
sudo apt-get install ssh
2.3. 开启ssh服务
sudo service sshd start
执行完命令后,用第一步:查看ssh服务状态的命令,确认ssh已经运行
3. 添加公钥到授权文件中
在远程服务器中添加客户机生成的公钥
sudo -i
cd ~/.ssh
vim authorized_keys
将客户机生成的id_rsa.pub文件内容拷贝到打开的authorized_keys中,并按esc, ZZ保存退出
3.1. 修改ssh配置文件
vim /etc/ssh/sshd_config
找到“PasswordAuthentication yes”和“PermitRootLogin yes”两行,取消注释,或者自行添加该配置也可以
PermitRootLogin yes
PasswordAuthentication yes
PubkeyAuthentication yes
RSAAuthentication yes
AuthorizedKeysFile /root/.ssh/authorized_keys
重启ssh服务,使配置生效
sudo service ssh restart
4. 本地远程登录
4.1. PowerShell登录
确保本地也开启ssh服务,然后输入以下命令即可远程登录
ssh root@XXXX.XX.XX.XXX
# 本文中的XXXX.XX.XX.XXX都应替换为远程服务器的公网IP
4.2. Docker Linux登录
docker pull ubuntu
docker images
docker run -itd --name ubuntu-user ubuntu
# ubuntu-user是为容器取得别名,可以自己取
docker ps
docker exec -ti ubuntu-user /bin/bash
进入docker镜像中,需要重复第1步的“生成本地密钥对”和“安装本地SSH服务”
之后就可以通过以下命令来登录了
docker exec -ti ubuntu-user /bin/bash -c "ssh root@XXXX.XX.XX.XXX"
4.3. PowerShell 设置命令别名
vim $PROFILE
在文件中输入:
function dockerlogin {docker exec -ti ubuntu-user /bin/bash -c "ssh root@XXXX.XX.XX.XXX"}
function ssh-user {ssh root@XXXX.XX.XX.XXX}
按esc, ZZ保存退出
以管理员身份打开PowerShell执行命令:
Set-ExecutionPolicy RemoteSigned
重启PowerShell,就可以通过命令别名来远程SSH登录了
# PowerShell 登录
ssh-user
# docker 中的 Linux登录
dockerlogin
4.4. Tabby登录
4.4.1. 下载安装Tabby作为客户端
下载Tabby的windows安装文件,可以到官网或者github上下载,无法下载的话也可以使用已经下载好的免安装版本:Tabby免安装程序
4.4.2. 配置Tabby的SSH登录
打开Tabby的配置和连接→新配置→SSH连接
指定名称(随意取,如Tencent_Cloud),主机地址(如XXXX.XX.XX.XXX),用户名(root),身份验证方法(秘钥),载入准备好的私钥文件(file://C:\Users\xxx.ssh\id_rsa)。
之后通过“配置和连接”选择“Tencent_Cloud"的SSH连接,就可以登录了。