windows 下的xshell很方便但是突然到期不能用,破解很麻烦,果断探索ubuntu ssh登陆以及文件传输
1、安装并开启ssh
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install openssh-server
sudo /etc/init.d/ssh start
2、ssh登陆
ssh 服务器用户名@服务器IP
OK 搞定
3、ssh传输文件
3.1、从服务器上下载文件
scp 服务器用户名@服务器IP:服务器文件夹绝对路径/filename 本地文件夹绝对路径(本地目录)
例如scp A@192.168.0.101:/home/homm/hommm.txt /home/hom/ho
把192.168.0.101上的/home/homm/hommm.txt文件下载到本地的/home/hom/ho文件夹下
3.2、上传本地文件到服务器
scp 本地文件夹绝对路径/文件名 服务器用户名@服务器IP:服务器文件夹绝对路径
例如scp /home/hom/ho/hommm.txt A@192.168.0.101:/home/homm
把本地的/home/hom/ho/hommm.txt文件 上传到192.168.0.101上的/home/homm/文件夹下
3.3、上传或下载文件夹
需要在scp 后加-r参数
例如scp -r /home/hom/ho/ A@192.168.0.101:/home/homm
例如scp A@192.168.0.101:/home/homm /home/hom/ho
PS:每次传输文件(U/D)都需要输入服务器端密码,这样很麻烦,需要写一个文件传输脚本的时候应该设置自动权限
一个简单的ubuntu ssh 自动登陆服务器脚本
python
import os
os.system(‘ssh 服务器用户名@服务器IP’)
os.system(‘scp’)#这个脚本执行登陆后面的传输文件就失效了,所以是否ssh一次就一直保持连接,如果在一个terminal中ssh后关闭后失效,或者可以单独开一个terminal保持ssh连接
这里os.system(’’)函数可以在脚本中执行terminal系统命令,jupyter notebook环境下可以用 ! 后加命令 的方式执行
到这里可以实现登陆但是仍需手动输入密码
为了解决这个问题
4 添加公钥认证
4.1 生成密钥对
terminal输入 ssh-keygen会提示
Generating public/private rsa key pair.
Enter file in which to save the key (/home/python/.ssh/id_rsa):
enter确定,密钥留空(也就是enter到底,为了省事)
然后切换到密钥对目录
cd ~/.ssh/
目录下可以看到生成的私钥id_rsa和公钥id_rsa.pub(不要暴露自己的私钥id_rsa !!!)
4.2 复制公钥到服务器
terminak输入ssh-copy-id 服务器用户名@服务器IP
到此直接ssh 服务器用户名@服务器IP 或是 执行脚本都可以自动登陆到服务器
PS:设置远程登陆快捷键
如果感觉登陆服务器要输入用户名、IP、密码很麻烦,可以通过修改.bashrc文件设置远程登陆快键键
sudo vim ~/.bashrc
添加:
alias server=‘ssh 服务器用户名@服务器IP’
esc->:wq->source ~/.bashrc
保存关闭激活后在terminal中执行server就可以登陆服务器了