1.免输登录密码
免输命令的正确方法是使用公钥和私鈅在研发设备,和linux服务器上校验身份。公钥和私钥可在windows系统上生成。公钥要发送到linux服务器。私钥需要通知给本地的ssh客户端程序,相关的操作如下:
生成 SSH Key:
- 打开终端或命令提示符窗口。
- 输入以下命令:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
。- 按照提示选择密钥存储位置和密码(或直接回车跳过密码)。
- 生成完成后,会在指定位置生成两个文件:
id_rsa
(私钥)和id_rsa.pub
(公钥)。将公钥添加到远程linux服务器:
- 登录到远程服务器。
- 找到或创建
.ssh
文件夹(一般位于用户主目录下,cd ~)。- 打开
authorized_keys
文件,将公钥文件id_rsa.pub
的内容添加到文件末尾。
- 如果对应文件不存在,直接重命名即可。
- 保存文件并退出。
配置windows平台 SSH 客户端秘钥模式登陆:
- 打开终端或命令提示符窗口。
- 输入以下命令:
ssh-add .ssh/id_rsa
,将私钥添加到 SSH agent 中。
- 注意,对于windows平台,默认的.ssh配置和文件,都在当前用户的.ssh目录下,这是一个隐藏目录。
- 在 SSH 客户端中此时已经可以使用私钥进行身份认证。全程无需密码。
连接远程服务器无密码测试:
- 打开终端或命令提示符窗口。
- 输入以下命令:
ssh username@remote_host
,其中username
是远程服务器上的用户名,remote_host
是远程服务器的地址或 IP。
注意,第三步,你可能遇到SSH agent未启动的问题, 这个按网上的搜索处理即可。你需要:1.确认windows平台的OpenSSH,SSH Agent都已经安装并运行。这类操作需要用到管理员模式的powershell.
SSH agent不仅仅是VSCode在用。信任链路一但建立,各种远程连接服务:ssh命令行工具、scp都可以从中受益。比如:
2.命令行文件拷贝 - 使用scp
注意,可能是因为版权问题,windows平台的scp服务器很难部署,但是反向操作很容易,那么,我们始终可以在 windows一侧,用客户端的模式去上传下载linux上的文件。
scp root@192.168.76.3:/home/fengxh/pjtxxxx/src/shake_src.log .
shake_src.log 100% 222KB 10.3MB/s 00:00
上述scp 命令输入时,甚至会有linux下的文件名自动补全功能,即使这个文件身处remote server far far away。无需输密码,方便的文件传递,那么源码呢?相关的git版本管理系统可以跨平台使用吗?是的,可以:
3.无GitStack之类的GitServer,基于scp模式的跨平台TortoiseGit连接
tortoiseGit是支持ssh,scp模式的git库读写的。
配置时:
远程连接部分,按照ssh协议,然后root用户访问:ssh://root@192.168.76.3:/home/fengxh/pjtxxxx
之后,输入密码后,右键操作和windows本地的git工作区访问没有什么两样:
并且,这种连接模式还是支持linux本身的账户权限分配的。可能比git自带的git服务器还好用。