【linux】linux设置ssh密钥登录详细教程,附Mobaxterm和pycharm ssh python解释器配置教程

这篇具有很好参考价值的文章主要介绍了【linux】linux设置ssh密钥登录详细教程,附Mobaxterm和pycharm ssh python解释器配置教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0、写在前面

我们通常使用SSH 客户端来远程使用 Linux 服务器。但是,一般的密码方式登录,容易有密码被暴力破解的问题。所以,一般我们会将 SSH 的端口设置为默认的 22 以外的端口,或者禁用 root 账户登录。但是即使是将端口设置为22之外的端口也容易泄露。为了保证服务器安全,此时希望使用密钥方式登录。而且使用秘钥登录能够避免每次登录时反复输入账户密码。

密码登录

  • 优势
    • 配置简单:只需要设个密码就行
    • 登录简单:在任意设备上只需要输入账号密码就能登录目标服务器
  • 劣势
    • 麻烦:每次登录都需要输入账号密码

密钥登录

  • 优势
    • 快捷:避免每次登录时反复输入账户密码
    • 安全:密钥文件相当于是超长超复杂的密码,暴力破解基本没戏,只有本地有密钥文件才能登录服务器
  • 劣势
    • 要从一台设备登录某台服务器,使用前必须先将密钥文件下载到该设备上

总结一下,根据辩证法的原理,优势和劣势都是相对的,没有十全十美的办法。

1、SSH密钥登录原理

1.1 密钥登录的原理是:

  1. 利用密钥生成器制作一对密钥——公钥和私钥。
  2. 将公钥添加到服务器的某个账户上,
  3. 将私钥下载到客户端,客户端利用私钥即可完成认证并登录。

1.2 非对称加密算法:

mobaxterm密钥,计算机技术,linux,linux,ubuntu,ssh

  • RSA加密算法是经典的非对称加密算法,其基本流程如下:

    • 用密钥生成器构建一对密钥——公钥和私钥。然后将公钥安装到服务器,私钥发送到客户端。
    • 服务器向客户端发送数据的时候用公钥进行加密,客户端收到数据后用私钥解密。
    • 客户端向服务器发送数据的时候用私钥进行加密,服务器收到数据后用公钥解密。

缺点在于:如果公钥在传输中泄漏,则黑客可以用公钥破解客户端发送的数据。

1.3 ssh密钥认证登录原理

mobaxterm密钥,计算机技术,linux,linux,ubuntu,ssh
参考:
SSH公钥登录(私钥认证)原理
什么叫SSH?原理详解,看这一篇就够了!

1.4 .ssh/里面的文件作用解释

id_rsa :私钥,与公钥配对使用。公钥加密的数据用私钥可以解密。既然是私,就不要乱发给别人,不然
id_rsa.pub :公钥,公钥相当于你的机器的身份信息。你想登录别台机器,你就把公钥发给他,并叫他安装到authorized_keys。
authorized_keys: 里面记录了服务器授权的所有公钥
known_hosts:ssh会把你每个你访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告, 避免你受到DNS Hijack之类的攻击。

2、配置SSH密钥登录

建议流程:

用户在本地个人电脑生成一个密钥对,然后将公钥上传并安装到服务器上。具体流程参考:2.3 在服务器上安装公钥

2.1 配置SSH,打开秘钥登录功能、关闭密码登录功能(管理员做)

  1. 使用vim 编辑 /etc/ssh/sshd_config 文件
sudo vim /etc/ssh/sshd_config
  1. 然后按 i进入编辑模式,在空白位置新增输入:
RSAAuthentication yes
PubkeyAuthentication yes

此处便已经设置好了使用秘钥登录了,但是如果需要禁用密码登录可以进行如下设置:

PasswordAuthentication no

这一步最好是在能够用秘钥登录的前提下设置,不然秘钥又没法登录,又不能用密码登录,就麻烦了。

编辑完文本后按 ESC,输入:wq 保存文件并退出。

  1. 最后,输入如下指令重启 SSH 服务:
sudo service sshd restart

设置好之后,无法使用密码登录,直接ssh username@xx.xx.xx.xx,如果没有配置好公私钥,会返回Permission denied (publickey)

2.2 生成密钥对

密钥对的生成在本地电脑或者服务器都可以。

  • 如果,你想不同服务器共用一个密钥对,那建议在本地电脑生成,之后将公钥上传到服务器并安装就行。
  • 如果,你想不同服务器使用不同的密钥对,那无所谓。

这边以服务器端生成密钥对举例,客户端也一样,比如windows打开cmd输入命令就行。

首先登录到服务器后,在命令行输入命令,然后一路回车就行。

 ssh-keygen

用来生成秘钥,如图:
mobaxterm密钥,计算机技术,linux,linux,ubuntu,ssh
第一步是确认保存秘钥的位置,一般使用默认的位置即可。
第二步是为秘钥设置一个密码, 第三步是确认密码。如果输入的话,即使别人有你的秘钥没有你的密码也是无法登录你的服务器的,这样会比较保险但也比较繁琐,直接回车表示不设置密码。
后面的信息是给出秘钥、公钥保存的位置和秘钥信息。
最终我们可以看到在 /home/username目录中生成了一个隐藏目录 .ssh,里面包含两个密钥文件,id_rsa 为私钥,id_rsa.pub 为公钥。

2.3 在服务器上安装公钥

首先进入 /home/username/.ssh/,如果没有./ssh,那就创建;如果没有id_rsa.pub,那就上传到该目录。
然后在命令行输入以下命令安装公钥,其实就是将id_rsa.pub的内容添加到authorized_keys

cd ~/.ssh
cat id_rsa.pub >> authorized_keys

如此便完成了公钥的安装。 此外,为了确保连接成功,输入如下指令以保证以下文件权限正确

chmod 600 authorized_keys 
chmod 700 ~/.ssh

命令意思:
对于安装好的公钥authorized_keys, 让当前用户具有读写权限,其余用户没有任何权限,以防被人修改,当前用户就登录不了了。
.ssh目录,让当前用户具有可读可写可执行权限,其余用户没有任何权限,确保ssh正常工作。

2.4 客户端利用私钥登录

如果是在服务器端生成的密钥对,首先要将.ssh文件夹中的私钥id_rsa下载到客户端,比如你的电脑,放在一个你不会删除的文件夹内,比如新建了一个 ssh 文件夹保存秘钥,为了便于管理 你也可以修改秘钥的文件名。

2.4.1 在MobaXterm中使用秘钥登录的操作

主要就是4、5步,勾选Use private key,然后点击文件图标选择刚才下载好的私钥文件,最后点OK就能成功登录了
mobaxterm密钥,计算机技术,linux,linux,ubuntu,ssh

2.4.2 在pycharm专业版配置ssh远程解释器

设置——项目——Python解释器——添加解释器——SSH
mobaxterm密钥,计算机技术,linux,linux,ubuntu,ssh
新建——输入主机名(IP)、端口、用户名

mobaxterm密钥,计算机技术,linux,linux,ubuntu,ssh

勾选密钥对,然后再然后点击文件图标选择刚才下载好的私钥文件,(密码短语空着,保存密码短语勾不勾无所谓),再点下一步
mobaxterm密钥,计算机技术,linux,linux,ubuntu,ssh

密码字段不用输入,直接跳过,点下一步
mobaxterm密钥,计算机技术,linux,linux,ubuntu,ssh
出现如下界面就表示登录成功了
mobaxterm密钥,计算机技术,linux,linux,ubuntu,ssh
之后再去选择服务器目录下的python解释器就好了
mobaxterm密钥,计算机技术,linux,linux,ubuntu,ssh

2.4.3 ssh、scp命令行使用密钥登录

第一次需要用 -i 指定私钥文件,之后就不用了,很方便的!!!
ssh

ssh -i ~/.ssh/id_rsa username@10.123.78.125

ssh的使用方法

usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface]
           [-b bind_address] [-c cipher_spec] [-D [bind_address:]port]
           [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11]
           [-i identity_file] [-J [user@]host[:port]] [-L address]
           [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
           [-Q query_option] [-R address] [-S ctl_path] [-W host:port]
           [-w local_tun[:remote_tun]] destination [command]

scp

scp -i  ~/.ssh/id_rsa  -r 要传输的文件地址 username@10.123.78.125:目标目录地址

scp的使用方法

usage: scp [-346BCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file]
            [-J destination] [-l limit] [-o ssh_option] [-P port]
            [-S program] source ... target

3、报错解决

3.1 Permissions 0644

  • 错误信息:

Permissions 0644 for ‘/home/xxxx/.ssh/my_id_rsa’ are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.

  • 解决办法:
    按照错误提示,意思是:my_id_rsa这个文件太开放了,要求私钥文件不能被其他人访问。
    所以只要将所属组和其他人的read权限取消即可。
    0644其实就是表示my_id_rsa这个文件的权限是644,要变得不那么open,那就把权限设成600,
chmod 600 my_id_rsa

参考链接

Ubuntu 设置 SSH 通过密钥登录文章来源地址https://www.toymoban.com/news/detail-642386.html

到了这里,关于【linux】linux设置ssh密钥登录详细教程,附Mobaxterm和pycharm ssh python解释器配置教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CentOS/Linux系统安装SSH并配置SSH登录密钥

            CentOS/Linux系统命令行输入如下命令:         用vim打开配置文件 /etc/ssh/sshd_config         将上图的 PermitRootLogin , RSAAuthentication , PubkeyAuthentication 的设置为YES      

    2024年02月16日
    浏览(41)
  • 第一章:Linux常用命令+VIM+SSH介绍+SSH密钥登录

    目录 一、Linux常用命令 1)# 与 $ 提示的区别 2)ifconfig 3) su 4) cd 5) 目录查看 6) 查看文件内容 7)创建目录及文件 8)复制和移动 9)其他 10) tar 11) which 12) whereis 13) find 14) chmod 二、vim一般使用 三、SSH介绍 1) 什么是SSH 2)SSH服务端和客户端 3)基本工作机制 四、

    2024年02月13日
    浏览(52)
  • Linux设置密钥登录

    使用密钥登录分为以下步骤: 1、生成密钥(公钥与私钥) 2、放置公钥(Public Key)到服务器指定用户目录的 .ssh/authorized_key文件中; 3、配置SSH客户端使用密钥登录。 4、测试密钥登陆成功后关闭密码登录。【可选】 1.生成密钥 cd /root/.ssh #进入指定用户的.ssh目录 ssh-keygen -t rsa

    2024年02月13日
    浏览(44)
  • 【Linux网络】ssh服务与配置,实现安全的密钥对免密登录

    目录 一、SSH基础 1、什么是ssh服务器 2、对比一下ssh协议与telnet协议 3、常见的底层为ssh协议的软件: 4、拓展 二、SSH软件学习 1、ssh服务软件学习  2、sshd公钥传输的原理: 3、ssh命令学习: 4、学习解读sshd服务配置文件: 三、ssh服务的应用 1、使用密钥对免密码登录 第一步

    2024年02月04日
    浏览(48)
  • 【深度学习环境】Windows10系统+AutoDL算力平台|使用MobaXterm终端工具实现SSH远程连接服务器|实现PyCharm与服务器远程连接|远程连接(详细版)

    一般情况下,我们的本地文件项目直接使用本机的GPU/CPU在编译器上编译调试。但是由于深度学习中神经网络模型庞大,在计算时常常会出现爆显存的问题,较小的显存不能满足计算需求。因此通常使用一台有着“大显存”的服务器来代替本机“小显存”以完成运算,我们期待

    2024年02月05日
    浏览(60)
  • Xshell “所选的用户密钥未在远程主机上注册,请再试一次”SSH 登录远程linux服务器(良心整理)

    这个问题真的要把我逼疯了,为什么呢? 为了解决这个问题,我搜遍了CSDN、知乎、简书上的解决方案,CSDN上的回答真的是水文太多,相互抄,抄就抄吧,只抄一半。这让真正想解决问题的人走了太多的弯路。 也不知道是谁写的原文,可能作者解决了,但是写的很不清楚,也

    2023年04月15日
    浏览(40)
  • SSH密钥生成及登录

    公钥是与私钥算法一起使用的密钥对的非秘密一半。公钥加密又称非对称加密。私钥加密算法使用单个私钥来加密和解密数据。由于具有密钥的任意一方都可以使用该密钥解密数据,因此必须保护密钥不被未经授权的代理得到。私钥加密又称为对称加密,因为同一密钥既用于

    2024年02月11日
    浏览(49)
  • 使用密钥登录ssh

    1、生成公钥和私钥 输入完后,一直按回车即可 2、生成密钥以后,再家目录中查看是否生成.ssh的文件 3、将.ssh中的公钥的文件追加到authorized_keys文件中 切换到上一级目录,并给.ssh赋予700权限 再进去到.ssh文件 给authorized_keys文件赋予600权限(600权限只有当前用户可以对它进行

    2024年02月14日
    浏览(40)
  • ssh使用密钥登录

    使用密钥登录可以提高ssh的安全性,因为它能防止恶意用户尝试使用暴力破解技术尝试猜测密码。在ssh中,使用密钥登录分为两个步骤: 生成或获取一对公钥和私钥。 将公钥添加到服务器上管理的用户的 ~/.ssh/authorized_keys 文件中。 下面是更详细的步骤: 可以使用以下命令来

    2024年02月13日
    浏览(36)
  • Linux创建新用户并设置SSH登录权限及证书登录

    SSH 为 Secure Shell(安全外壳协议)的缩写,由 IETF 的网络工作小组(Network Working Group)所制定。SSH 为建立在应用层和传输层基础上的安全协议,是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议,利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。

    2024年02月11日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包