درود
من برای اینکه امنیتم را تضمین کنم برای متصل شدن به سرورم با ssh، کلیدی ساختم و میتونم به راحتی به سرورم وصل بشم، من هربار برای اینکه به سرور وصل بشم باید یه گذرواژهی طولانی را وارد کنم و طبق تحقیقاتی که کردم ابزاری به نام ssh-agent میتونه بهم کمک کنه تا به جای هر بار وارد کردن گذرواژه، بعد از اینکه یه بار گذرواژهام را وارد کردم اون را در سامانهی من ذخیره کنه و دفعات بعدی به راحتی بتونم به سرورم متصل بشم و درگیر تایپ کردن گذرواژه نشم.
خب اقداماتی که تا الان انجام دادم:
نصب بستهی ssh-agent و قرار دادن خطوط زیر در Bashrc:
if ! pgrep -u "$USER" ssh-agent > /dev/null; then
ssh-agent > ~/.ssh-agent-thing
clear
fi
if [[ "$SSH_AGENT_PID" == "" ]]; then
eval "$(<~/.ssh-agent-thing)"
clear
fi
ساخت سرویس برای ssh-agent و فعال کردن اون:
sudo nano ~/.config/systemd/user/ssh-agent.service
محتویات این پرونده:
[Unit]
Description=SSH key agent
[Service]
Type=simple
Environment=SSH_AUTH_SOCK=%t/ssh-agent.socket
ExecStart=/usr/bin/ssh-agent -D -a $SSH_AUTH_SOCK
[Install]
WantedBy=default.target
و همینطور:
echo "SSH_AUTH_SOCK DEFAULT="${XDG_RUNTIME_DIR}/ssh-agent.socket"" >> .pam_environment
وضعیت سرویس:
[hossein@Archlinux ~]$ systemctl status ssh-agent.service
● ssh-agent.service - SSH key agent
Loaded: loaded (/etc/systemd/system/ssh-agent.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2018-03-17 12:54:01 +03; 10min ago
Main PID: 482 (ssh-agent)
Tasks: 1 (limit: 4566)
Memory: 2.9M
CGroup: /system.slice/ssh-agent.service
└─482 /usr/bin/ssh-agent -D -a /run/ssh-agent.socket
Mar 17 12:54:01 Archlinux systemd[1]: Started SSH key agent.
Mar 17 12:54:02 Archlinux ssh-agent[482]: SSH_AUTH_SOCK=/run/ssh-agent.socket; export SSH_AUTH_SOCK;
Mar 17 12:54:02 Archlinux ssh-agent[482]: echo Agent pid 482;
(نمیدونم اقداماتم در مورد راهاندازی اون خدمت درست بوده یا نه! شاید هم باید اون خطوط را از bashrc حذف کنم و یا اینکه اصلا محتویات اون پروندهی متنی ssh-agent.service درست نیست یا ...)
در ادامه من بعد از هر بار راهاندازی سامانه, ssh-agent را دارم:
root 482 0.0 0.0 13464 3256 ? Ss 12:54 0:00 /usr/bin/ssh-agent -D -a /run/ssh-agent.socket
root 570 0.0 0.1 40696 5080 ? Ss 12:54 0:00 /usr/bin/sshd -D
hossein 965 0.0 0.0 13464 388 ? Ss 12:55 0:00 ssh-agent
hossein 1666 0.0 0.0 12436 2228 pts/0 S+ 13:07 0:00 grep ssh
خب الان یه بار به سرورم وصل میشم:
[hossein@Archlinux ~]$ ssh user@myip
Enter passphrase for key '/home/hossein/.ssh/id_rsa':
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-112-generic x86_64)
الان که به سرور وصلم دستور زیر را میزنم تا گذرواژم ذخیره بشه و ssh-agent از این به بعد ازش استفاده کنه:
ssh-add ~/.ssh/id_rsa
و خطای زیر را دریافت میکنم:
Error connecting to agent: No such file or directory
البته مشکل من این نیست, قبل از اینکه این پست را بنویسم خطای بالا را دریافت نمیکردم و مشکلم این بود که باید هر بار و پس از هر Reboot دستور ssh-add را میزدم تا بتونم بدون وارد کردن گذرواژهی کلید وصل بشم به سرورم و البته این تا زمانی بود که سیستم را خاموش نمیکردم, اگر سیستم را خاموش میکردم دوباره باید ssh-add میزدم تا در مدتی که سیستم روشنه بتونم بدون وارد کردن گذرواژه به سیستمم وصل بشم ولی الان حتی نمیتونم اون دستور را به درستی اجرا کنم.
دسترسیهای من در .ssh:
[hossein@Archlinux .ssh]$ pwd
/home/hossein/.ssh
[hossein@Archlinux .ssh]$ ls -al
total 24
drwx------ 2 hossein users 4096 Mar 17 12:49 .
drwx------ 43 hossein users 4096 Mar 17 13:18 ..
-rw------- 1 hossein users 751 Mar 15 18:01 authorized_keys
-rw------- 1 hossein users 0 Mar 17 12:49 id_ed25519
-rw------- 1 hossein users 3326 Mar 1 16:52 id_rsa
-rw-r--r-- 1 hossein users 751 Mar 1 16:52 id_rsa.pub
-rw-r--r-- 1 hossein users 353 Mar 5 17:51 known_hosts
از شما چه انتظاری دارم:
لطفا برام به صورت کامل توضیح بدید که کارهایی که کردم درست بوده یا نه, چه تغییرات باید ایجاد کنم اگر قسمتی از اونها مشکل داره؟
لطفا کمکم کنید از دستور ssh-add استفاده کنم و سپس بعد از حل این مشکل بتونم پس از هربار روشن کردن سیستم بدون نیاز به وارد کردن دستور ssh-add و بدون وارد کردن گذرواژهی کلیدم ازش استفاده کنم.
پ.ن: من معمولا وقتی سوالی را میپرسم قبلش تمام منابع را گشتم و مطالعه کردم اما صادقانه بخوام صحبت کنم این بار فقط صفحهی man دستور ssh-add را با ویکی آرچ صفحهی ssh keys خوندم و یکم تنبلی کردم ولی با این حال با وجود اینکه کمبود وقت دارم, از عزیزان خواهش میکنم اگر تجربهای دارند باهام به اشتراک بذارن.