赞
踩
请务必先清楚两个概念:
客户端:本机(想要连远程主机);(客户机)
服务器:远程主机
SSH分为客户端 openssh-client
和服务器 openssh-server
,可以利用以下命令确认电脑上是否安装了客户端和服务器。
dpkg -l | grep ssh
如果只是想远程登陆别的机器只需要安装客户端(Ubuntu默认安装了客户端),如果要开放本机的SSH服务就需要安装服务器。
sudo apt-get install openssh-client
sudo apt-get install openssh-server
确认ssh-server是否已经启动了:
ps -e | grep ssh
sshd 表示ssh-server已经启动了。如果没有启动,可以使用如下命令启动:
sudo /etc/init.d/ssh start
停止和重启ssh服务的命令如下:
sudo /etc/init.d/ssh stop #server停止ssh服务
sudo /etc/init.d/ssh restart #server重启ssh服务
通过 SSH Client 我们可以连接到运行了 SSH Server 的远程机器上。SSH Client 的基本使用方法是:ssh user@remote -p port
user
是远程机器上的用户名,如果不指定的话默认为当前用户
remote
是远程机器的地址,可以是 IP,域名,或者是后面会提到的别名
port
是 SSH Server 监听的端口,如果不指定的话就为默认值 22
如果需要调用图形界面程序可以使用 -X 选项
ssh -X kkvb@192.168.40.129
如果客户机的用户名和服务器的用户名相同,登录时可以省略用户名。
ssh 192.168.40.129
客户机必须要知道服务器的ip地址。可以在服务器端电脑上利用**ifconfig
**** 命令查看该机的ip地址**
比较可靠的方式是使用ip命令:
ip addr show
它将同时显示IPv4和IPv6地址:
成功登陆后,命令提示符会修改为远程主机的提示符,现在开始,终端中输入的命令都将在服务器中执行。
可以通过 Ctrl+D 或者** exit** 命令退出远程登录。
SSH还提供了公钥登录,可以省去输入密码的步骤。
执行
ssh-keygen
即可生成 SSH 钥匙,一路回车即可。生成的公钥保存在 ~/.ssh/id_rsa.pub
中,私钥放在 ~/.ssh/id_rsa
中。
接下来,要让远程机器记住我们的公钥。最简单的方法是使用命令:
ssh-copy-id user@remote
它将公钥复制到远程主机的~/ .ssh/authorized_key
文件中。
至此,以后再登陆远程主机便可不用再输入密码。
在 ~/.ssh/config
里面追加以下内容:
# 注意是在客户端中添加,不是服务器!
# 别忘了把remote和user换成自己服务器对应的地址和用户名
Host lab
HostName remote
User user
Port port
保存之后,即可用ssh lab
代替ssh user@remote -p port
进行登陆。
客户端与服务器之间可以通过scp
传输文件:
# 把本地的 /path/to/local/file 文件传输到远程的 /path/to/remote/file scp -P port /path/to/local/file user@remote:/path/to/remote/file # 也可以使用别名 scp /path/to/local/file lab:/path/to/remote/file # 把远程的 /path/to/remote/file 下载到本地的 /path/to/local/file scp lab:/path/to/remote/file /path/to/local/file # 远程的默认路径是家目录 # 下面命令把当前目录下的 file 传到远程的 ~/dir/file scp file lab:dir/file # 加上 -r 命令可以传送文件夹 # 下面命令可以把当前目录下的 dir 文件夹传到远程的家目录下 scp -r dir lab: # 别忘了 . 可以用来指代当前目录 # 下面命令可以把远程的 ~/dir 目录下载到当前目录里面 scp -r lab:dir/ .
scp
命令的一些参数
-1 强制scp命令使用协议ssh1
-2 强制scp命令使用协议ssh2
-4 强制scp命令只使用IPv4寻址
-6 强制scp命令只使用IPv6寻址
-B 使用批处理模式(传输过程中不询问传输口令或短语)
-C 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p 留原文件的修改时间,访问时间和访问权限。
-q 不显示传输进度条。
-r 递归复制整个目录。
-v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-c cipher 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F ssh_config 指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i identity_file 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l limit 限定用户所能使用的带宽,以Kbit/s为单位。
-o ssh_option 如果习惯于使用ssh_config(5)中的参数传递方式,
-P port 注意是大写的P, port是指定数据传输用到的端口号
-S program 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。