ওএস এক্সের জন্য ওপেনএসএসএইচ নির্মাণ করছেন?


0

আমার পরীক্ষার জন্য আমি ওএস এক্স 10.5 পাওয়ারম্যাক (পাওয়ারপিসি) ব্যবহার করি। অ্যাপল এর পক্ষে সমর্থন ত্যাগ করেছে। অন্যরা পরীক্ষার জন্য বাক্সে অ্যাক্সেস চান, সুতরাং আমার একটি আপডেট ওপেনএসএইচ তৈরি এবং ইনস্টল করা দরকার।

আমি ওপেনশ্যাট ডট কম পরিদর্শন করেছি এবং এফটিপি এর মাধ্যমে সর্বশেষতম সংস্করণ (7.১) এনেছি। বাম হাতের সাইডবারে লিঙ্কটি। হোমপেজে কোনও ডাউনলোড লিঙ্ক নেই; আপনি এর জন্য গুঞ্জন আছে।

দুর্ভাগ্যক্রমে, এটি ওপেনএসএইচ-তে প্রক্রিয়াটিতে ডকুমেন্টেশনের অভাব রয়েছে বলে মনে হয়। নেই configure(তাই কোন configure --help), কোন করা হয় INSTALL , আর তাতে কোন বিষয় নেই OpenSSH- র প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী

একটি README রয়েছে যা আমাকে http://www.openssh.com/portable.html এ দেখায় । দুর্ভাগ্যক্রমে, এটি বিল্ড নির্দেশাবলী সরবরাহ করে না। মজার ব্যাপার হচ্ছে, এটি উভয় একটি সম্পর্কে আলোচনা করে configureএবং autoreconf যে হয় না tarball রূপে উপস্থিত রয়েছে।

আমার ওপেনএসএসএল এর একটি আপডেট সংস্করণ ব্যবহার করা দরকার। ওপেনএসএসএল 1.0.2 ডি নির্মিত এবং ইনস্টল করা হয়েছে /usr/local। আমাকে ওপেনএসএসএইচটি স্থিতিশীলভাবে বিকল্প ওপেনএসএসএল-এর সাথে লিঙ্কগুলিও নিশ্চিত করতে হবে যাতে এটি অ্যাপল দ্বারা সরবরাহিত ওপেনএসএসএল 0.9.8 এর ডাউনলভ্যাল সংস্করণটি ব্যবহার না করে।

ওএস এক্স-এ আপডেট ওপেনএসএসএল ব্যবহার করে আমি কীভাবে ওপেনএসএসএইচ তৈরি করব? আমি কোথায় নির্দেশাবলীর সন্ধান করব?

উত্তর:


2

ওএস এক্স-এ আপডেট ওপেনএসএসএল ব্যবহার করে আমি কীভাবে ওপেনএসএসএইচ তৈরি করব? আমি কোথায় নির্দেশাবলীর সন্ধান করব?

মাধ্যাকর্ষণ সঠিক ছিল - আমি ভুল ওপেনএসএসএইচ ডাউনলোড করেছি। আমার একটি পোর্টেবল দরকার, এবং এফটিপি লিঙ্কে সরবরাহ করা নয়। পোর্টেবলগুলি পোর্টেবল ওপেনএসএসএইচের নীচে তালিকাভুক্ত করা হয় ।

আপনার কাছে পোর্টেবলটি একবার আনপ্যাক করুন এবং তারপরে নিম্নলিখিতটি সম্পাদন করুন। নিম্নলিখিতটি ধরে নিয়েছে যে আপনি একটি আপডেট ওপেনএসএসএল libcryptoইনস্টল করেছেন /usr/local/ssl/darwinএবং একটি আপডেটেড জেলিব libzএ থাকবেন /usr/local। আপনার স্বাদ স্যুট করতে এগুলি সামঞ্জস্য করুন।

আর্কাইভের নিখুঁত পথ দিয়ে -lz প্রতিস্থাপন করুন

স্থির সংযোগ নিশ্চিত করার জন্য এটি প্রয়োজন কারণ এটির জন্য কোনও আপাত বিকল্প নেই configure। যখন বাইনারিটি নির্মিত হয়, তখন otool -Lদেখানো হবে যে কোনও বাহ্যিক জ্লিব নির্ভরতা নেই।

$ grep "\-lz" *
configure:{ echo "$as_me:$LINENO: checking for deflate in -lz" >&5
configure:echo $ECHO_N "checking for deflate in -lz... $ECHO_C" >&6; }
configure:LIBS="-lz  $LIBS"
configure:  LIBS="-lz $LIBS"
configure:      LIBS="$LIBS -lz"
configure.ac:       LIBS="$LIBS -lz"

তারপর:

$ sed -i "" 's|-lz|/usr/local/lib/libz.a|g' config.h.in configure configure.ac
$

আর্কাইভের নিখুঁত পথ দিয়ে -lcrypto প্রতিস্থাপন করুন

স্থির সংযোগ নিশ্চিত করার জন্য এটি প্রয়োজন কারণ এটির জন্য কোনও আপাত বিকল্প নেই configure। যখন বাইনারিটি নির্মিত হয়, তখন otool -Lদেখানো হবে যে কোনও বাহ্যিক ওপেনএসএসএল নির্ভরতা নেই।

$ grep "\-lcrypto" *
configure:  LIBS="-lcrypto $LIBS"
configure.ac:   LIBS="-lcrypto $LIBS"

তারপর:

$ sed -i "" 's|-lcrypto|/usr/local/ssl/darwin/lib/libcrypto.a|g' configure configure.ac
$

উপরের দিকে, আমি ওপেনএসএসএল লাইব্রেরিটি তৈরি করার সময় /usr/local/ssl/darwinহিসাবে ব্যবহার করি --openssldir। এটি সাধারণত ন্যায় /usr/local/ssl। এটি প্রয়োজনীয় হিসাবে সামঞ্জস্য করুন।

ওপেনএসএইচ কনফিগার করুন

প্রয়োজনীয় পাথ সহ ওপেনএসএইচ কনফিগার করুন। আপনার একটি ওএস এক্স গ্রন্থাগারও অন্তর্ভুক্ত করতে হতে পারে।

যদি find /usr/lib/ -name libsandbox*ফিরে আসে libsandbox.dylib, তবে আপনাকে অন্তর্ভুক্ত করা দরকার --with-libs="-lsandbox। এটি ওএস এক্স 10.5 এ অনুপস্থিত, তবে এটি ওএস এক্স 10.8 এ উপস্থিত রয়েছে। যদি গ্রন্থাগারটি উপস্থিত থাকে তবে --with-libsবাদ দেওয়া হয়, তবে এর অনুরূপ একটি ত্রুটি ঘটবে riemann.local sshd[15748]: fatal: ssh_sandbox_child: sandbox_init: dlopen(/usr/lib/libsandbox.1.dylib, 261): image not found [preauth]

$ ./configure --without-ssh1 --with-ssl-dir=/usr/local/ssl/darwin --with-zlib=/usr/local \
  --with-libs="-lsandbox" --prefix=/usr/local
checking for gcc... gcc
checking for C compiler default output file name... a.out
...

OpenSSH has been configured with the following options:
                     User binaries: /usr/local/bin
                   System binaries: /usr/local/sbin
               Configuration files: /usr/local/etc
...

Host: x86_64-apple-darwin12.6.0
Compiler: gcc
Compiler flags: -g -O2 -Qunused-arguments -Wunknown-warning-option -Wall -Wpointer-arith 
    -Wuninitialized -Wsign-compare -Wformat-security -Wsizeof-pointer-memaccess
    -Wno-pointer-sign -Wno-unused-result -fno-strict-aliasing -D_FORTIFY_SOURCE=2
    -ftrapv -fno-builtin-memset -fstack-protector-all -fPIE 
Preprocessor flags: -I/usr/local/ssl/darwin/include -I/usr/local/include 
Linker flags: -L/usr/local/ssl/darwin/lib -L/usr/local/lib  -fstack-protector-all -pie
Libraries: /usr/local/ssl/darwin/lib/libcrypto.a /usr/local/lib/libz.a -lsandbox -lresolv

আপনার --with-pamপাসওয়ার্ডের প্রমাণীকরণের কাজ করার প্রয়োজন হতে পারে । আমি বৈশিষ্ট্যটি নিয়ে উদ্বিগ্ন ছিলাম না, তাই আমি কনফিগারেশন বিকল্পটি যোগ করিনি।

ওপেনএসএইচ বিল্ড এবং ইনস্টল করুন

-fwrapvকিছুটা সমস্যাগ্রস্থ যখন উচ্চ সততা সফ্টওয়্যার দেখা যায়। এর অর্থ সাধারণত অনির্ধারিত আচরণ সহ একটি অবৈধ সি প্রোগ্রাম রয়েছে । বিকাশকারীরা এটি স্থির করেনি, তাই তারা -fwrapvব্যান্ড-সহায়তা হিসাবে ব্যবহার করে ।

$ make
conffile=`echo sshd_config.out | sed 's/.out$//'`; \
...

gcc -g -O2 -Qunused-arguments -Wunknown-warning-option -Wall -Wpointer-arith -Wuninitialized
  -Wsign-compare -Wformat-security -Wsizeof-pointer-memaccess -Wno-pointer-sign
  -Wno-unused-result -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -ftrapv -fno-builtin-memset
  -fstack-protector-all -fPIE  -I. -I.. -I. -I./.. -I/usr/local/ssl/darwin/include
-I/usr/local/include  -DHAVE_CONFIG_H -c arc4random.c
gcc -g -O2 -Qunused-arguments -Wunknown-warning-option -Wall -Wpointer-arith -Wuninitialized
  -Wsign-compare -Wformat-security -Wsizeof-pointer-memaccess -Wno-pointer-sign
  -Wno-unused-result -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -ftrapv -fno-builtin-memset
  -fstack-protector-all -fPIE  -I. -I.. -I. -I./.. -I/usr/local/ssl/darwin/include
  -I/usr/local/include  -DHAVE_CONFIG_H -c bsd-asprintf.c
...

বাহ্যিক নির্ভরতা (বা এর অভাব) এর সাথে যাচাই করা যেতে পারে:

$ otool -L ./sshd 
./sshd:
    /usr/lib/libsandbox.1.dylib (compatibility version 1.0.0, current version 1.0.0)
    /usr/lib/libresolv.9.dylib (compatibility version 1.0.0, current version 1.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)

দুর্ভাগ্যক্রমে, কোনও make checkবা make testলক্ষ্যমাত্রা নেই, সুতরাং সফ্টওয়্যারটি ইনস্টল করার আগে এটি পরীক্ষা করার কোনও আপাত উপায় নেই।

$ sudo make install
...

Generating public/private ed25519 key pair.
Your identification has been saved in /usr/local/etc/ssh_host_ed25519_key.
Your public key has been saved in /usr/local/etc/ssh_host_ed25519_key.pub.
The key fingerprint is:
SHA256:u/xQ6haFqxjG0fBgSMt0W58N8zmhu+NmyQxNMkMcwPc root@riemann.home.dmz
The key's randomart image is:
+--[ED25519 256]--+
| .ooooo.o .      |
| o.o=o+. B o     |
|  o..B .+.=      |
|    . * E...     |
|   . . *So.      |
|    + . +=       |
|   . o =*o       |
|    . .+B+       |
|       +=..      |
+----[SHA256]-----+
...

নতুন এসএসএইচ বাইনারি জন্য একটি Plist তৈরি করুন

নিম্নলিখিত বিদ্যমান ব্যবহার করে ssh.plist, অ্যাপল র‌্যাপার স্ক্রিপ্ট সরিয়ে দেয় এবং পোর্ট নম্বর পরিবর্তন করে। এটি অনুলিপি করুন /System/Library/LaunchDaemons/ssh-7.1.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Disabled</key>
    <true/>
    <key>Label</key>
    <string>com.openssh.sshd.7-1</string>
    <key>Program</key>
    <string>/usr/local/sbin/sshd</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/sbin/sshd</string>
        <string>-i</string>
        <string>-e</string>
        <string>-f</string>
        <string>/usr/local/etc/sshd_config</string>
        <string>-o</string>
        <string>PidFile=/var/run/sshd-7.1.pid</string>
    </array>
    <key>Sockets</key>
    <dict>
            <key>Listeners</key>
            <dict>
                    <key>SockServiceName</key>
                    <string>1522</string>
            </dict>
    </dict>
    <key>inetdCompatibility</key>
    <dict>
        <key>Wait</key>
        <false/>
    </dict>
    <key>StandardErrorPath</key>
    <string>/var/log/sshd-7.1.log</string>
    <key>SHAuthorizationRight</key>
    <string>system.preferences</string>
</dict>
</plist>

প্লিস্টটিতে কয়েকটি জিনিস চলছে:

  • com.openssh.sshd.7-1অ্যাপলের সাথে সংঘর্ষ এড়াতে সার্ভিস লেবেলটি পরিবর্তন করা হয়েছিলcom.openssh.sshd
  • var/run/sshd-7.1.pidঅ্যাপলের সাথে সংঘর্ষ এড়াতে পিআইডি ফাইলটি পরিবর্তন করা হয়েছিলvar/run/sshd.pid
  • ক্লায়েন্ট সংযোগগুলি পরিবেশন ProgramArgumentsকরার sshd re-exec requires execution with an absolute pathসময় প্রোগ্রামটির পরম পথটি অন্তর্ভুক্ত ছিল
  • sshd_configখোলা প্রশ্ন এবং বিভ্রান্তি এড়াতে বিশেষভাবে ডেকে আনা হয়েছে। তবে এটি ডিফল্টরূপে ব্যবহৃত হয়
  • iঅপশনটি ব্যবহার করে - যদিও এটি একটি inetd(8)বিকল্প। ওএস এক্স-এর এসএসডিডি এবং -i বিকল্প অনুযায়ী এটি ব্যবহার করা উচিত

নতুন এসএসএইচ পরিষেবা শুরু করুন

পরিষেবাটি চালু করতে চালু করা ব্যবহার করুন। "লোড করার জন্য কিছুই পাওয়া যায় নি" ত্রুটি বার্তাটি -wএড়ানোর জন্য ব্যবহারটি লক্ষ্য করুন কারণ পরিষেবাটি অক্ষম।

$ sudo launchctl load -w /System/Library/LaunchDaemons/ssh-7.1.plist

অবশেষে, নতুন এসএসএইচ সার্ভারটি কাজ করছে তা যাচাই করুন:

$ netstat -an | grep 1522
tcp6       0      0  *.1522                 *.*                    LISTEN     
tcp4       0      0  *.1522                 *.*                    LISTEN  

1

আমি ওপেনশ্যাট ডট কম পরিদর্শন করেছি এবং এফটিপি এর মাধ্যমে সর্বশেষতম সংস্করণ (7.১) এনেছি।

নাম হিসাবে যেমন "ওপেনবিএসডি: এফটিপি / এইচটিটিপি" এর অধীনে লিঙ্কটি কেবল ওপেনবিএসডি-র জন্য । ওপেনবিএসডি 'পোর্টস' সরঞ্জাম ব্যবহার করে এটি তৈরি করা দরকার।

যেহেতু আপনি ওপেনবিএসডি নয়, ওএস এক্স চালাচ্ছেন, তাই আপনাকে এটি "অন্যান্য ওএসের জন্য → অন্যদের জন্য ..." থেকে ডাউনলোড করতে হবে। ("ডাউনলোড" বিভাগে নিচে স্ক্রোল করুন)) অফিসিয়াল ওপেনএসএসএইচ -পোর্টেবল 7.1p1 টারবালটিতে অবশ্যই configureস্ক্রিপ্ট এবং INSTALLডকুমেন্ট উভয়ই রয়েছে ।

স্ট্যাটিক লিঙ্কিংয়ের প্রয়োজন হবে না; ওএস এক্স বাইনারিগুলি পরম পথে লাইব্রেরিতে নির্ভর করতে পারে। (আমি মনে করি এটি এমনকি ডিফল্ট হতে পারে?)

হোমপেজে কোনও ডাউনলোড লিঙ্ক নেই; আপনি এর জন্য গুঞ্জন আছে।

আমি সম্মত হলাম যে ওয়েবসাইটটি 1990 এর দশকে আটকে আছে, তবে আমি একটি গণনার পরিবর্তে দুটি ক্লিক বলতে পারব না, এটি যদি একটি ডাউনলোড পৃষ্ঠা থাকে তবে এটিতে ওএস লিঙ্কগুলি থাকবে যা ইতিমধ্যে সাইডবারে রয়েছে , তাই না?

আমি কোথায় নির্দেশাবলীর সন্ধান করব?

হোমব্রিউ, বিশেষত এর ওপেনশ সূত্রটি একবার দেখুন । এছাড়াও:


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

ধন্যবাদ আবার গ্র্যাটি। এটি একটি সাধারণের চেয়ে অনেক বেশি ছিল ./configure ... && makeতবে আমি মনে করি এটি আমরা পেয়েছি। আমি sshd.cহ্যাকটি পছন্দ করি না তবে ওপেনএসএসএইচ দেব সমস্যার সমাধান না হওয়া অবধি আমার সেরা / সবচেয়ে সহজ মনে হয়। সাহায্যের জন্য ধন্যবাদ.
jww
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.