ssh服务安装
要配置ssh远程登录,需要确认要配置远程登录的机器及本机是否开启ssh服务。
通过如下命令就可以查看:
# 查看是否安装
dpkg -l | grep ssh
# 查看是否启动服务
ps -e | grep ssh
Ubuntu上默认上安装了openssh-client的,他可以让我们使用ssh命令登录到其他机器,但不能被登录,所以要配置远程登录,还需要安装openssh-server。
# 安装客户端
sudo apt-get install openssh-client
# 安装服务端
sudo apt-get install openssh-server
安装完成后,如果服务没有自动启动起来。我们可以通过以下命令进行对应操作。
# 启动服务
sudo /etc/init.d/ssh start # 或者 service sshd start
# 重启服务
sudo /etc/init.d/ssh restart # 或者 service sshd restart
# 停止服务
sudo /etc/init.d/ssh stop # 或者 service sshd stop
密码登陆
上面我们安装好了ssh相关的服务现在我们就可以在其他机器上远程登陆到这台机器上了。
命令非常简单
# 命令格式: ssh 用户名@地址
ssh root@192.168.0.1 # 根据提示输入密码即可
# 查看帮助
ssh
免密登陆
上面我们学会了怎么使用密码登陆,但每次登陆都需要手动输入用户名,IP地址,密码等,还是非常麻烦的。那有没有简单的方法呢?答案肯定是有。
我们先约定一下:
用于登陆的电脑称呼为---A
需要配置免密登陆的电脑称呼为---B
生成密钥对
要配置免密登陆,我们就需要先在A电脑生成自己的密钥对。密钥对就像是钥匙和锁一样的关系。常规情况下,我们的密钥对都放在以下文件夹。
# 查看.ssh文件夹 如果存在 id_rsa id_rsa.pub 这两个文件则说明是已经有了密钥对
ls ~/.ssh/
id_rsa:私钥
id_rsa.pub: 公钥
如果没有该文件夹或者没有密钥对,那么我们可以通过一下以下命令生存密钥。
# ssh-keygen -t rsa -C email
ssh-keygen -t rsa -C xx@google.com # 一直回车就可以了
这个时候我们再查看 .ssh 就会发现密钥对已经生成了!
上传公钥
密钥生成后,我们就可以通过以下命令把公钥上传给B机器
# ssh-copy-id -i 公钥路径 B机器用户@B机器地址
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.1 # 按照提示输入相关信息即可
# 测试登陆 ssh B机器用户@B机器地址
ssh root@92.168.0.1 # 如果发现不需要输入密码了那就说明我们免密登陆配置成功了
配置成功后,如果我们想要删除免密,则登陆到B机器,删除.ssh/authorized_keys里面对应A机器的内容即可。
懒人攻略
上面已经实现了免密登陆了,但是对于终极懒人来说,每次都要输入用户名和目标地址也是不能忍受的。那有没有更简便的方法呢?跟我来,我们一起把懒进行到底。
#切换到.ssh目录
cd ~/.ssh/
# 编辑config文件 插入以下内容
sudo vim config # 没有vim可以使用vi
# 内容
Host B #自定义的用于登陆的名字
HostName 192.168.0.1 # B机器IP
IdentityFile ~/.ssh/id_rsa # A机器私钥地址
User root # B机器用户名
Port 22 # B机器ssh端口
IServerAliveInterval 10
TCPKeepAlive yes
StrictHostKeyChecking no
# 测试远程登录
ssh B
通过以上操作,我们已经把我们的远程登录简化到非常简单的地步了。那我们这就满足了吗?肯定没有。我们口号是什么,懒到极致就是方便。
mac
如果你使用的是iterm2作为终端工具,可以跟着我进行以下操作
右键,我们就可以发现我们配置的tab了。点击进入,我们就可以直接进入到B机器了。
windows
未完待续