ssh 公鑰認證登入

大部份情況下用 ssh 連線到 Linux 主機,就是連上去後打帳號、密碼後登入,但其實 ssh 還提供公鑰認證的方式,就是在本機安裝一把私鑰,在 Linux 主機上安裝一把公鑰,那麼使用 ssh 連線時,就可以直接連線,不需要輸入帳號、密碼,方法如下: (這裡使用 putty 連線 Linux)

  • 使用 PuTTY Key Generator 產生 Key

執行 PuTTY Key Generator 產生公私鑰,如下圖,按【Generate】,然後滑鼠要一直動,這個軟體會根據滑鼠軌跡計算出公私鑰。當產生出來後,按【Save public key】及【Save private key】將公私鑰儲存。(假設儲存的檔名為 steven.pub 及 steven.ppk)

  • 設定 Putty

如下圖,輸入要連線的主機的 IP 或 host name,並為這個 session 取個名稱後按【Save」。

於 Auto-login username 處輸入要登入的帳號。

於 Private key file for authentication 設定私鑰的檔名,然後點選左邊的 Session,回到最開頭的那個畫面後按【Save】,將上述的設定儲存。

  • 部署公鑰

使用 ssh-copy-id 將公鑰部署到 Linux Server 上,steven.pub  是公鑰檔名,steven 是帳號,192.168.253.128 是主機的 IP。

ssh-copy-id -i steven.pub [email protected]192.168.253.128

部署上去後,在 Linux 主機上的 /home/steven/.ssh 目錄下,會出現一個名為 authorized_keys 的檔案,公鑰被放入這個檔案裡了! 如果這個檔案原本就已存在,這一次部署的公鑰會被 append 在檔案後頭。部署後要記得檢查一下這個檔案的權限必須是 644,且使用者和群組需要是 steven steven,如下圖所示,如果不是當然就自己改一下…

chmod 644 authorized_keys
chown steven.steven authorized_keys

  • 修改 ssh 設定檔

使用 root 權限,開啟 /etc/sshd_config,這個檔有很多選項,下面只列出要設定的部份,因為我們產生的是 RSA 演算法的公私鑰,所以進行如下設定,這些設定簡單的說,就是開啟 RSA public key 授權,並指明 public key  所放置的位置。其實這些選項原本就都存在於 sshd_config 檔裡,只是被 # 設成註解,只要找到這些選項將 # 移除就可以了。

HostKey /etc/ssh/ssh_host_rsa_key

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

修改完 ssh 設定必須重啟服務,如下:

service sshd restart
  • 測試

開啟 putty 選擇一開始我們儲存的那個 session,按【Open】進行連線,不需要輸入帳號、密碼,即可以看到如下畫面,表示已登入成功。

时间: 2025-01-04 10:41:15

ssh 公鑰認證登入的相关文章

登入ssh不用輸入密碼

最近在用rsync從ssh通道處理sync的工作,然而ssh是需要經過一道密碼輸入才能進行rsync ,而且也放入cron自動執行,找不到人輸入密碼它會哭哭的 ~ 利用ssh-keygen產生密鑰 id_rsa, id_rsa.pub $ssh-keygen -t rsa 或 ssh-keygen -d (dsa) 將產生完的 id_rsa.pub 用scp傳送至對方的主機.(這過程還是需要密碼) $scp id_rsa.pub server_hostname:~/.ssh/ 連到對方的主機 $

linux下ssh客户端命令远程登入系统详解

1.远程登入系统有常用两个服务telnet和ssh,都属于C/S架构 telnet: 远程登录协议,端口为23/tcp 特点:明文传输,不加密 ssh: Secure SHell,端口为22/tcp有v1,v2两个版本 特点:主机加密认证 用户认证过程加密 数据传输过程加密 sshv1:由于受到中间人攻击等安全隐患,现在用的不多 sshv2:相对sshv1,很安全,其认证过程有两种:基于口令认证及基于密钥认证 2.Linux系统程序是openSSH 服务器端:sshd, 配置文件/etc/ssh

ssh 使用密钥无法登入Linux系统

今天测试密钥登入linux系统时 出现如下问题: [email protected]:~# ssh [email protected] -p 80 -i alickicxxxxxxx.key @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: UNPROTECTED PRIVATE KEY FILE! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

ssh登入不上输入密码解决

公司一直是用ssh无密码登入设备,今天给客户开下设备权限,客户登入不让输入密码: 解决方法: 编辑 /etc/ssh/sshd_config,把 PasswordAuthentication no 改成yes 重启sshd:service sshd restart 解决

expect一键实现集群ssh免密登入

expect具有非交互式功能 yum -y install expect mkpasswd -l 20   #<==生成随机字符串,-l参数指定生成字符串的长度 非交互密钥分发 添加用户(所有机器) useradd jiege1 echo 123456|passwd --stdin jiege1 id jiege1 10创建密钥对 su - jiege1 ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa>/dev/null 2>&1 10一键分发公

[心得]Ubuntu無法ssh登入

裝好ssh後,發覺無法用root登入,可是sshd_config接正確. 後來發現原因在於,Ubuntu沒有root帳號,但是可以透過sudo -s拿到root權限. su root 密碼怎樣打也行不通,不過sudo -s卻可以. 總之就是要用sudo -s 後 執行passwd 建立帳號 ref. http://www.thegeekstuff.com/2009/09/ubuntu-tips-how-to-login-using-su-command-su-gives-authenticati

配置网络、集群内主机名设定、ssh登入、bash命令、通配符

作业一:临时配置网络(ip,网关,dns)+永久配置 设置临时网络配置: 配置IP ifcongfig ens33 192.168.16.177/24 (ifconfig 网卡 ip地址    /24代表它子网掩码) 配置网关 route add default gw 192.168.16.177 netmask 255.255.255.0  添加默认网关 配置 DNS vim /etc/resolv.conf            (DNS配置文件位置) 设置永久网络配置: cd /etc/s

ssh免密码登入

通常做许多事情(git puh/脚本等等),不停输入密码是件很不愉快的事情,破解如下: http://www.linuxproblem.org/art_9.html 1. 生成rsa密钥 ssh-keygen -t rsa 2. 将公钥添加到欲登入主机的相应用户的 ~/.ssh/authorized_keys里面去(append方式) cat id_rsa.pub | ssh 相应用户@目标主机 'cat>>~/.ssh/authorized_keys'

Linux-PAM(Linux下的密碼認證和安全机制)系統管理員指南(中文版)

he Linux-PAM 系统管理员指南作者:Andrew G. Morgan, [email protected]翻译:孙国清(Thomas Sun),[email protected]DRAFT v0.71 1999/11/8 这个文档所涉的是系统管理员须知的关于Linux-PAM库的知识. 它涉及了设置PAM的正确语法并讨论维护一个可靠系统的正确的策略.1. 介绍 Linux-PAM (Linux下的可插入式认证模组) 是一套共享函数库,允许系统管理员来决定应用程式如何识别用户. 换句话说