এনক্রিপ্টড হোমডির সহ কোনও উবুন্টু সিস্টেমে অনুমোদিত_কিগুলি সহ এসএসএইচ?


38

আমি সম্প্রতি উবুন্টু কার্মিক 9.10 দিয়ে একটি নতুন সার্ভার সেট আপ করেছি এবং আমি যখন আমার হোম ডিরেক্টরি তৈরি করব তখন আমি এটিকে এনক্রিপ্ট করা বেছে নিয়েছি। এখন, আমার অনুমোদিত_কিগুলি ফাইলটি ~ / .ssh এ লোড করার পরে, এটি লগ ইন না করা পর্যন্ত আমার হোম ডিরেক্টরিটি ডিক্রিপ্ট করা হয়নি বলে স্বীকৃত নয় U উবুন্টুর আওতায় এনক্রিপ্ট করা হোম ডিরেক্টরিগুলির সাথে এসএসএইচ কীগুলি কাজ করার কোনও উপায় আছে কি?


আরও ভাল ট্যাগ পরামর্শ স্বাগত জানায়, প্রস্তাবিত ট্যাগগুলিতে সত্যই ভাল মিল খুঁজে পেল না।
জোশ

1
আমি মনে করি এগুলি আসলে স্পট করছে। একটি ubuntuট্যাগ আছে তবে আমি মনে করি না যে এই সমস্যাটি কোনও নির্দিষ্ট ওএসের সাথে নির্দিষ্ট।
কোয়াকোট কোয়েক্সোট

উবুন্টু ১১.১০-এ আমার এই সমস্যার একটি লক্ষণ হ'ল মেশিনে প্রবেশ করার প্রথম প্রচেষ্টাটি হল পাসওয়ার্ড প্রমাণীকরণ প্রয়োজন (যেহেতু authorized_keysএখনও অ্যাক্সেসযোগ্য নয়)। যদি আমি অন্য ssh সংযোগ চালু করি তবে কী প্রমাণীকরণ কাজ করে।
mindless.panda

উত্তর:


39

আপনার sshd_config ফাইলে এই লাইনটি পরিবর্তন করুন:

AuthorizedKeysFile /etc/ssh/%u/authorized_keys

এবং তারপরে আপনার অনুমোদিত_কিজ ফাইলটি / etc / ssh / আপনার-ব্যবহারকারীর নাম / অনুমোদিত_কিগুলিতে সরান

এটি সমাধানের জন্য এই পোস্টটি নথিভুক্ত করে way


1
আমি ভেবেছিলাম প্রথম সমাধানটি নিখুঁত বলে মনে হচ্ছে তবে এটি আমার পক্ষে কার্যকর হয়নি। নিশ্চিত কেন। তবে আপনি যে পোস্টটি লিঙ্ক করেছেন তা দুর্দান্ত কাজ করেছে। ধন্যবাদ!
জোশ

3
জোশ - লক্ষ্যযুক্ত ব্যবহারকারী কি সেই ফাইলগুলির মালিক এবং 600 (দিরের জন্য 700) এর অনুমতি রয়েছে?
এনভিআরএম

1
সম্পূর্ণ নির্দেশাবলীর জন্য এই লিঙ্কটি দেখুন: উবুন্টুতে এসএসএইচ কীগুলি । সমস্যা সমাধানের বিভাগে স্ক্রোল করুন।
jjeaton

8

এই সমাধানটি এই পোস্ট দ্বারা অনুপ্রাণিত হয়েছিল । IMHO আপনার / etc / ssh / sshd_config সংশোধন করার চেয়ে অনেক বেশি ভাল যেহেতু এর জন্য কোনও রুট অ্যাক্সেসের প্রয়োজন হয় না।

# Make your public key accessible
mkdir -m 700 /home/.ecryptfs/$USER/.ssh
echo $YOUR_PUBLIC_KEY > /home/.ecryptfs/$USER/.ssh/authorized_keys
ln -s /home/.ecryptfs/$USER/.ssh/authorized_keys ~/.ssh/authorized_keys
ecryptfs-umount-private
chmod 700 $HOME
mkdir -m 700 ~/.ssh
ln -s /home/.ecryptfs/$USER/.ssh/authorized_keys ~/.ssh/authorized_keys

# Make it auto-mount with first login.
# Note: it can cause problems with automated login.
echo /usr/bin/ecryptfs-mount-private > ~/.profile
echo cd >> ~/.profile
echo source .profile >> ~/.profile
ecryptfs-mount-private

3
এটি আসলে কী করে তার সংক্ষিপ্ত বিবরণী সরবরাহ করতে পারেন?
mindless.panda

আপনার সর্বজনীন কী (গুলি) যার সাহায্যে আপনি মেশিনের অ্যাক্সেস করতে চান সংরক্ষণ করুন আপনি: আমি ব্যাখ্যা করতে সেখানে কি ঘটছে একটি সম্পাদনা করেছেন authorized_keysমধ্যে /home/**.ecryptfs**/$USERএনক্রিপশন এবং এটি লিংক ছাড়া থেকে বাড়িতে আপনার এনক্রিপ্ট না বাড়িতে সেইসাথে এনক্রিপ্ট করা হবে। নতুন .profileআপনার এনক্রিপ্ট না বাড়ি বাড়ি গিয়ে এবং উৎস আপনার আসল মধ্যে আপনার এনক্রিপ্ট হোম ডিরেক্টরীতে, "সিডি" মাউন্ট করা উচিত .profile
লাইভওয়্যারবিটি

নতুন 16.04 ইনস্টলেশনের উদ্দেশ্যে হিসাবে কাজ করে। কয়েকটি মন্তব্য: এনক্রিপ্ট করা বাড়িটি লেখার জন্য উপযুক্ত ছিল না (যা বোঝায় যে আপনি ব্যবহারকারীরা দুর্ঘটনাক্রমে সেখানে ডেটা সংরক্ষণ করে সবকিছু নষ্ট করে দেবেন না) তাই অস্থায়ীভাবে অনুমতিগুলি পরিবর্তন করুন। টার্মিনাল থেকে জিইআই এবং লাইটডিএম থেকে লগ আউট করা বা আপনি যে কোনও ডিএম ব্যবহার করে থামিয়ে দিয়েছেন তা এই সমস্ত করতে হবে। ecryptfs-mount-privateআপনি জিইআইতে লগইন না করা হলে সর্বদা পাবলিক কীগুলির মাধ্যমে সফল লগইন করার পরে ব্যবহারকারীর পাসওয়ার্ডের জন্য জিজ্ঞাসা করে। আমার সম্পাদনাটি এখানে একটি নথির সাথে কয়েকটি ইকো প্রতিস্থাপন করে, এটি টাইপ করা কম পুনরাবৃত্তিযোগ্য, এতে বিভ্রান্ত হবেন না।
লাইভওয়্যারবিটি

2

আমি এই নিয়ে কিছুটা বিশৃঙ্খলা নিয়ে কিছু সময় ব্যয় করেছি এবং উত্তরটি হ'ল এটি প্রায় অনেকটা অসম্ভব অসম্ভব। এটা তোলে হয় ssh -র মাধ্যমে passwordless পাবলিক-কি-প্রামাণ লগইন সেট আপ করার জন্য, যাতে আপনি আপনার পাসওয়ার্ড টাইপ করতে হবে না সম্ভব লগ ইন করুন , কিন্তু যে কোন জায়গায় আপনি পাবেন না, কারণ আপনার হোম ডিরেক্টরীতে এখনও এনক্রিপ্ট করা হয়েছে।

সাধারণ সত্যটি হ'ল আপনার এনক্রিপ্ট করা হোম ডিরেক্টরিটি কোনও পাসওয়ার্ড * এর মাধ্যমে এনক্রিপ্ট করা থাকে, সুতরাং এটি ডিক্রিপ্ট করার একমাত্র উপায় সেই পাসওয়ার্ড দিয়ে।

এবং যদি আপনি ভাবছেন যে তত্ত্বের ভিত্তিতে আপনার ssh কীটি লগইন করার সময় মাউন্ট পাসফ্রেজটি ডিক্রিপ্ট করার জন্য ব্যবহার করা সম্ভব হবে, এটি কাজ করবে না কারণ আপনার ব্যক্তিগত কী কখনই সার্ভারে প্রেরণ করা হয়নি।

সুতরাং মূলত, আপনি যদি এনক্রিপশন চান, আপনাকে পাসওয়ার্ড ব্যবহার করতে হবে। এনক্রিপ্ট করা হোম ডিরেক্টরিগুলি একই কারণে ফিঙ্গারপ্রিন্ট লগইনের সাথে বেমানান।


* আমি জানি এটি একটি একক পাসওয়ার্ডের চেয়ে জটিল, তবে আসুন এখনই এটি সহজ রাখি।


ঠিক আছে, ডিজেভেলের উত্তরটি পুরোপুরি কার্যকর হয়েছে সুতরাং সম্ভবত আমার হোম ডিরেক্টরিটি ওএসের একটি কী দ্বারা এনক্রিপ্ট করা আছে এবং এটি ডিক্রিপ্ট করতে ব্যবহার করতে সক্ষম। তদ্ব্যতীত, এসএসএইচিং করার সময়, sshd কীভাবে আমার হোম ডিরেক্টরিটি ডিক্রিপ্ট করতে পারে তা জানে না, সুতরাং এটি পাসওয়ার্ড প্রমাণীকরণের সাথে কেন কাজ করে তা ব্যাখ্যা করে না।
জোশ

অপেক্ষা করুন, সুতরাং যখন আপনি কোনও পাসওয়ার্ড টাইপ না করে ssh এর মাধ্যমে লগ ইন করবেন, আপনার এনক্রিপ্ট করা হোম ডিরেক্টরিটি আসলে মাউন্ট হয়ে যায়?
রায়ান সি থম্পসন

হ্যাঁ এটা করে. আমি লগ আউট করার সময় এবং অমীমাংসিত।
জোশ

ঠিক আছে, এটা অদ্ভুত। আমার উত্তরে আমি যে আচরণটি বর্ণনা করি তা পাই। আমার লগইনটি কেবল তখনই মাউন্ট করা যায় যদি আমার লগইনে কোনও পাসওয়ার্ড জড়িত থাকে (বিশেষত, আমার লগইন পাসওয়ার্ড)। আমি অবাক হয়েছি কীভাবে আপনি জনসাধারণের কীগুলি নিয়ে কাজ করতে আলাদাভাবে কাজ করেছেন।
রায়ান সি থম্পসন

@ রায়ান থম্পসন আপনি কি উবুন্টু 9.10 ব্যবহার করছেন?
জোশ

1

আপনি যদি ডিফল্ট সেটআপটি পরিবর্তন করতে পছন্দ করেন না (আমি চাই না, আমার ফাইলগুলি আমার যেখানে হওয়া প্রত্যাশা রয়েছে সেখানে থাকতে চাই) তবে আপনি কীভাবে এটি করতে পারেন সে সম্পর্কে আমার পোস্টটি একবার দেখে নিতে পারেন:

http://www.enetworkservices.net/wordpress/ssh-public-keys-with-encrypted-home-directory.html

সংক্ষেপে. আপনি আপনার ব্যবহারকারীর এনক্রিপ্ট করা সংস্করণে আপনার কীগুলি রেখেছেন ~/.sshএবং অন্যটির এনক্রিপ্ট করা সংস্করণটি সিমিলিং করুন ~/.ssh। এইভাবে এটি সর্বদা সেখানে।

আমার মতো অলস লোকের জন্য, এটি আপনার জন্য করার জন্য এখানে একটি স্ক্রিপ্ট রয়েছে। সাধারণ ব্যবহারকারী হিসাবে এটি চালান run কোনও রুট অ্যাক্সেস বা অনুমতি প্রয়োজন নেই এবং কোনও সার্ভার কনফিগারেশন পরিবর্তন প্রয়োজন। খাঁটি সাধারণ ব্যবহারকারীর সেটিংস।

#!/bin/bash
#
# Encrypted Home DIR SSH Key fix.
# Requires modification to sshd_config
#  AuthorizedKeys /etc/ssh/authorized_keys/%u/authorized_keys
# sudo mkdir /etc/ssh/authorized_keys -m 777
# for existing users run from home directory when login.
# for new users modify /etc/skel to include .bashrc to call script.
#
# Author: Benjamin Davis <bdavis@enetworkservices.net>

# Check if directory exists.
if [ ! -d "/etc/ssh/authorized_keys/$LOGNAME" ]
then
    # Make directory with restricted permissions.
    echo "Creating user ssh directory."
    mkdir /etc/ssh/authorized_keys/$LOGNAME -m 700
fi

# Check real users home .ssh folder
if [ -d "/home/$LOGNAME/.ssh" ]
then
    # Check if dir is symlink
    if [ ! -h /home/$LOGNAME/.ssh ]
    then
        echo "Moving configs."
        mv /home/$LOGNAME/.ssh/. /etc/ssh/authorized_keys/$LOGNAME/.
        rm -rf /home/$LOGNAME/.ssh/
        ln -s -T /etc/ssh/authorized_keys/$LOGNAME /home/$LOGNAME/.ssh
        clear
    fi
else
    # Does not exist so link it.
    if [[ $EUID -ne 0 ]]
    then
        echo "User ssh config folder does not exist. Creating."
        mkdir /home/$LOGNAME/.ssh -m 700
        ln -s -T /etc/ssh/authorized_keys/$LOGNAME /home/$LOGNAME/.ssh
    fi
fi

0

আপনি লগইন করতে আরও সুরক্ষিত পাবলিক কীটি ব্যবহার করতে পারেন এবং তারপরে আপনার পাসওয়ার্ড টাইপ করার পরে আপনার ডিরেক্টরিটি মাউন্ট করতে নিম্নলিখিতটি সম্পাদন করতে পারেন:

ecryptfs-mount-private

~/README.txtএসএসএইচ-এর মাধ্যমে লগ ইন করার পরে ফাইলটি পড়ুন , আপনি দেখতে পাবেন যে আপনার ফাইলগুলি নেই কারণ এনক্রিপ্ট করা ডিরেক্টরিটি মাউন্ট করা হয়নি।

যাইহোক লগইন করতে আপনার পাসওয়ার্ডহীন পাবলিক-কীগুলি ব্যবহার করা উচিত নয়। আরও ভাল উপায়ে ssh- এজেন্ট তাকান।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.