内容纲要

环境

  • 客户端: win
  • 服务器端: ubuntu

生成密钥对

win 下生成,工具有 – git bash / msys2 bash/ cygwin bash/ 下的 ssh-keygen

  • PuTTYgen
  • xshell 新建用户密钥生成向导

我们使用 msys2 下的 bash 生成

$ ssh-keygen 或者 ssh-keygen.exe -t rsa -N "" -f id_rsa 

msys64\\home\\用户名\\.ssh 下生成了

  • id_rsa 私钥
  • id_rsa.pub 公钥

如果是 git bash 则生成在 C:\Users\用户名\.ssh 下 ## 将公钥部署到远程机器上(ubuntu)

远程机上安装 lrzsz ,在 xshell 下上传 id_rsa.pub,并通过 id_rsa.pub 生成 authorized_keys

sudo apt-get install lrzsz 
cd ~/.ssh/ 
rz 
cat id_rsa.pub >> ~/.ssh/authorized_keys 
sudo chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys 

新建 authorized_keys 文件,粘贴密钥的方式并不好使,最好用 cat id_rsa.pub >> ~/.ssh/authorized_key

修改远程机的 /etc/ssh/sshd_config

sshd_config 文件修改为

StrictModes no 
RSAAuthentication yes 
PubkeyAuthentication yes 
AuthorizedKeysFile %h/.ssh/authorized_keys 

重启远程机的 ssh 服务

sudo /etc/init.d/ssh restart 

配置客户端机的 /etc/ssh/ssh_config

添加私钥验证文件

IdentityFile ~/.ssh/id_rsa 
IdentityFile ~/.ssh/linode_private 我生成的另外的私钥文件

接下来可以在本地使用 git bash / msys2 bash / cygwin bash 通过 ssh 命令行登录远程机。

在 msys2 下安装 rsync

pacman -S rsync 

写一个 shell 脚本同步文件

linux2win.sh

#!/bin/bash rsync -arvuih --rsync-path=\'rsync --log-file=/var/www/rsync_linux2win.log\' --delete --progress -e \'ssh -p 22 -i ~/.ssh/linode_private\' root@www.dev798.com:/var/www \'/d/linode/var/www\' 

发表评论

电子邮件地址不会被公开。 必填项已用*标注