SSH
SSH,即Secure Shell,是用于安全登录远程系统的协议。
SSH是一种协议,我们常用的OpenSSH只是实现了它的一个软件。
一般情况下系统会自带openssh-client
,可用于登录其他服务器。
若要被登录,则在ubuntu中你可以通过sudo apt install openssh-server
的方式来安装。
ssh 远程登录服务器
# 不写用户名默认以当前用户身份登录
ssh <域名或IP地址>
# 指定用户名
ssh <用户名>:<域名或IP地址>
# 回车之后如果密钥已经配置,则会直接登录成功,否则会询问密码
sshd 修改默认端口22
我们可以通过配置文件修改默认端口22,配置文件在/etc/ssh/sshd_config
打开配置文件,我们找到 # Port 22
将其取消注释,然后修改为其他端口比如99,然后尝试连接:
理性端口号,需要重启sshd方可生效:systemctl restart sshd
禁止Root用户登录
如果想禁止Root用户远程直接登录,可以将配置文件里的PermitRootLogin
设置为no
生成密钥
使用ssh-keygen
生成密钥的时候,会提示输入密码,直接回车即置空。
之后使用该密钥对去登录其他服务器的时候,不需要输入额外的密码。
否则,你在其他服务器上配置过公钥之后,使用该私钥去认证,需要输入该私钥的密码。
ssh-keygen -t rsa
<Enter>
<Enter>
<Enter>
将公钥拷贝到服务器
# 端口为22则可省略 -p <port>
ssh-copy-id -p <port> <host>
scp
# 拷贝本地文件到远程服务器
scp <本地文件> -p <port> <user>@<host>:<path> # 如果是目录加 -r
# 从服务器拷贝文件到本地
scp -p <port> <user>@<host>:<path> <本地路径> # 如果是目录加 -r
sftp
sftp <host>
# 进入交互模式后,可以浏览传输文件
get <文件名> <本地地址>