এই উত্তরটি আরও সুরক্ষা যুক্ত করে নির্বাচিত উত্তরের উপর উভয় বিকাশ করে ।
এই উত্তরটি সাধারণ রূপ নিয়ে আলোচনা করেছে
<command that makes output> | \
ssh <user A>@<host A> <command that maps stdin to clipboard>
কোথায় নিরাপত্তা উদাসীন হতে পারে হয় ssh
অনুমতি যার ফলে <user B>
উপর host B>
থেকে ssh
মধ্যে host A
এবং চালানো কোনো কমান্ড।
অবশ্যই B
করতে A
অ্যাক্সেস ইতিমধ্যে একটি দ্বারা সীমাবদ্ধ হতে পারে ssh
কী, এবং এটি এমনকি একটি পাসওয়ার্ড থাকতে পারে। তবে সুরক্ষার আরেকটি স্তর অনুমতিযোগ্য কমান্ডগুলির সীমাবদ্ধ B
করতে পারে যা কার্যকর করতে পারে A
, যেমন rm -rf /
এটি বলা যায় না। (এই যখন বিশেষভাবে গুরুত্বপূর্ণ ssh
চাবি নেই একটি পাসওয়ার্ড রয়েছে।)
ভাগ্যক্রমে, ssh
একটি অন্তর্নির্মিত বৈশিষ্ট্য রয়েছে যার নাম কমান্ড সীমাবদ্ধতা বা জোর করে কমান্ড । দেখুন ssh.com , কিংবা এই serverfault.com প্রশ্ন ।
নীচের সমাধানটি ssh
কমান্ড সীমাবদ্ধতা প্রয়োগের সাথে সাধারণ ফর্ম সমাধান দেখায় ।
কমান্ড সীমাবদ্ধতার সাথে সমাধান যুক্ত করুন
এই সুরক্ষা বর্ধিত সমাধানটি সাধারণ ফর্মটি অনুসরণ করে - ssh
সেশনটির কলটি host-B
কেবল এইভাবে :
cat <file> | ssh <user-A>@<host A> to_clipboard
এর বাকি অংশটি এটির কাজ পেতে সেটআপ দেখায়।
Ssh কমান্ড সীমাবদ্ধতার সেটআপ
ব্যবহারকারীর অ্যাকাউন্ট ধরুন B
হয় user-B
, এবং B একটি ssh কী হয়েছে id-clip
, যে স্বাভাবিক ভাবেই তৈরি করা হয়েছে ( ssh-keygen
)।
তারপর user-A
এর SSH ডিরেক্টরির সেখানে একটি ফাইল
/home/user-A/.ssh/authorized_keys
এটি কীটি সনাক্ত করে id-clip
এবং ssh
সংযোগের অনুমতি দেয় ।
সাধারণত প্রতিটি লাইনের বিষয়বস্তু authorized_keys
হ'ল সর্বজনীন কী অনুমোদিত হয়, যেমন, এর বিষয়বস্তু id-clip.pub
।
তবে, প্রয়োগ করা কমান্ড সীমাবদ্ধতা যে পাবলিক কী সামগ্রীগুলি কার্যকর করা হবে সেই আদেশ দ্বারা (একই লাইনে) চাপ দেওয়া হয়েছে।
আমাদের ক্ষেত্রে:
command="/home/user-A/.ssh/allowed-commands.sh id-clip",no-agent-forwarding,no-port-forwarding,no-user-rc,no-x11-forwarding,no-pty <content of file id-clip.pub>
মনোনীত কমান্ড "/home/user-A/.ssh/allowed-commands.sh id-clip"
, এবং কেবলমাত্র মনোনীত কমান্ডটি কার্যকর করা হয় যখনই কী id-clip
ব্যবহার করা হয় আরম্ভ করুন iatessh
সাথে সংযোগ করে host-A
- কোন আদেশটি কি ssh
কমান্ড লাইনই লিখিত হয় না ।
কমান্ডটি একটি স্ক্রিপ্ট ফাইল নির্দেশ করে allowed-commands.sh
এবং সেই স্ক্রিপ্ট ফাইলটির বিষয়বস্তু
#/bin/bash
#
# You can have only one forced command in ~/.ssh/authorized_keys. Use this
# wrapper to allow several commands.
Id=${1}
case "$SSH_ORIGINAL_COMMAND" in
"to-clipboard")
notify-send "ssh to-clipboard, from ${Id}"
cat | xsel --display :0 -i -b
;;
*)
echo "Access denied"
exit 1
;;
esac
আসল কল ssh
মেশিনেB
ছিল
... | ssh <user-A>@<host A> to_clipboard
স্ট্রিংটি পরিবেশ পরিবর্তনশীল দ্বারা to-clipboard
প্রেরণ করা allowed-commands.sh
হয়SSH_ORIGINAL_COMMAND
। সংযোজন, আমরা id-clip
যে লাইনটি authorized_keys
কেবল অ্যাক্সেস করে সেখান থেকে, কীটির নামটি পাস করেছি id-clip
।
লাইন
notify-send "ssh to-clipboard, from ${Id}"
ক্লিপবোর্ডটি লেখা হচ্ছে তা আপনাকে জানাতে কেবল একটি পপআপ বার্তা বাক্স - এটি সম্ভবত একটি ভাল সুরক্ষা বৈশিষ্ট্য। ( notify-send
উবুন্টু 18.04 এ কাজ করে, অন্যরা নাও পারে)।
লাইনের মাঝে
cat | xsel --display :0 -i -b
প্যারামিটারটি --display :0
প্রয়োজনীয় কারণ প্রক্রিয়াটির নিজস্ব ক্লিপবোর্ডের এক্স এক্স নেই, সুতরাং এটি অবশ্যই স্পষ্টভাবে নির্দিষ্ট করা উচিত। এই মানটি :0
ওয়েল্যান্ড উইন্ডো সার্ভারের সাথে উবুন্টু 18.04 এ কাজ করতে দেখা যায়। অন্যান্য সেটআপগুলিতে এটি কাজ নাও করতে পারে। একটি স্ট্যান্ডার্ড এক্স সার্ভারের জন্য এই উত্তর সাহায্য করতে পারে।
host-A
/etc/ssh/sshd_config
পরামিতি
পরিশেষে /etc/ssh/sshd_config
হোস্টের কয়েকটি পরামিতি A
যা সংযোগের অনুমতি নিশ্চিত করতে হবে এবং ssh
কেবল পাসওয়ার্ড ছাড়াই -কি ব্যবহারের অনুমতি নিশ্চিত করতে হবে :
PubkeyAuthentication yes
PasswordAuthentication no
ChallengeResponseAuthentication no
AllowUsers user-A
করতে sshd
সার্ভার কনফিগ পুনরায় পড়া
sudo systemctl restart sshd.service
অথবা
sudo service sshd.service restart
উপসংহার
এটি সেট আপ করার জন্য কিছু চেষ্টা করা হয়েছে, তবে অন্যান্য to-clipboard
কাঠামোগুলি একই কাঠামোর সমান্তরালে নির্মিত যেতে পারে।
:'<,'>w !ssh desktop pbcopy