【ssh】ubuntu ssh 服务器

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 [email protected]:/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 [email protected]:/home/homm
把本地的/home/hom/ho/hommm.txt文件 上传到192.168.0.101上的/home/homm/文件夹下

3.3、上传或下载文件夹
需要在scp 后加-r参数

例如scp -r /home/hom/ho/ [email protected]:/home/homm
例如scp [email protected]:/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就可以登陆服务器了

你可能感兴趣的:(Ubuntu)