如何将远程服务器上的文件拿到本地(且本地电脑无管理员权限)
原理就是通过将本地的公钥添加到远程的服务器账户下,然后通过bash 实现文件的拷贝
所以需要bash,git , 以及公钥的配置流程
有管理员权限的可忽略方案1,2 准备工作,直接在windows系统中添加bash,git环境变量即可(本人是由于电脑是公家的,没有管理员权限,才这么折腾)
首先不管有没有管理员权限都需要安装Git(安装这个是不需要管理员权限的哈)
安装就不说了,免费软件,一直点下一步就安装ok啦
起因:想通过bash直接将远程服务器的code拿到本地
可是公司电脑用户没有管理员权限,无法直接添加环境变量
方案一:
windows下通过命令行设置环境变量
set 设置临时环境变量
1、查看所有环境变量:cmd输入set查看
2、查看环境变量:set path
3、修改环境变量:set 变量名=变量内容 例如:set path = "XXXX",覆盖path的值
4、添加环境变量:set 变量名=变量内容
setx 可以永久设置环境变量
1、setx /m 永久设置环境变量
2、setx /m name "value"
3、setx -m 永久追加环境变量
4、setx -m name "%name%;value"
查看环境变量:
C:\Users\ren.wang> echo %PATH%
setx /m PATH "%PATH%;D:\Git\bin"
#带/m表示全局,不带/m表示当前用户
错误: 拒绝访问注册表路径 (可是又回到最初的问题,没有管理员权限,无法访问Gpedit.msc)
单击“开始→运行”,输入“Gpedit.msc”后回车,打开“组策略”。然后,依次展开“用户配置→管理模板→系统”,双击右侧窗口中的“阻止访问注册表编辑工具”,在弹出的窗口中选择“已禁用”,“确定”后再退出“组策略”,即可为注册表解锁。
方案二
把需要添加的应用程序移到已有环境变量对应目录,这样就相当于也配置了环境变量
前面Git安装后会默认配置 环境变量 D:\Git\cmd ,所以我这里就直接把 Git/bin下面需要用到的几个文件拷贝到此目录下
好了,现在就相当于有环境变量关联了。
如何生成公钥?
一般公钥生产会在此目录下:
不过可能你是第一次使用github
寻找.ssh文件夹秘钥时候,发现电脑里没有这个文件夹。
解决方法如下: 如果是第一次使用github,先去官网注册,注册后有用户名,邮箱和密码。
打开GIT bash 写上命令:
1.git config --global user.name “XXX” xxx代表你的用户名
2.git config --global user.email "XXX@XXX.com" 输入邮箱
3.生成一个新的SSH密钥 打开 Git Bash,输入如下命令,
ssh-keygen -t rsa -C "your_email@example.com"
直接 ssh-keygen 也可以,邮箱不是必须参数 ,然后连续按三个回车即可
然后会出来提示Enter file in which to save the key 后面是一个路径,
你就会找到你想要的.ssh文件夹了,去电脑里找吧。
公钥就生成了
配置公钥:
通过scp免密在windows和Linux服务器之间复制文件
ssh-copy-id命令把本地的ssh公钥文件添加到远程主机对应的账户下
cd ~/.ssh/ // remote_username = 远程Linux服务器用户名 // remote_ip = 远程linux服务器IP地址 ssh-copy-id -i ~/.ssh/id_rsa.pub remote_username@remote_ip
成功后会生成下面这个文件
scp配置测试:
// remote_username = 远程Linux服务器用户名 // remote_ip = 远程linux服务器IP地址 scp local_file remote_username@remote_ip:remote_file scp remote_username@remote_ip:remote_file .
本地复制文件到 remote host)
如上所示已经将ttt.txt复制到远程服务器上了,反之 scp remote_username@remote_ip:remote_file . 即可将远程服务器文件拉到本地来
注意:此方法的的前提是你的网络是能访问到远程服务器的情况下才可 , 若是你的网络本身无法访问服务器,那就不用想了,肯定拿不到文件也传不了文件,不然公司的文件不是谁都可以乱动了吗
如上图所示 ssh: Could not resolve hostname 一般就是网络没权限导致