คำถามติดแท็ก ssh

SSH (Secure SHell) เป็นโปรโตคอลสำหรับการรันคำสั่งอย่างปลอดภัยบนคอมพิวเตอร์ระยะไกล ใช้แท็กนี้สำหรับคำถามเกี่ยวกับการกำหนดค่าการใช้และการแก้ไขปัญหาไคลเอ็นต์และซอฟต์แวร์เซิร์ฟเวอร์ SSH

4
X ระยะไกลที่เร็วที่สุดจาก Windows
ฉันมีการตั้งค่าต่อไปนี้: |-----------------| |---------------| | Windows | LAN (or VPN) | Linux box | | (local machine) | <--------------------> | | |-----------------| |---------------| และฉันต้องการที่จะเข้าถึงและ Emacs Eclipse หน้าต่างของฉันในกล่อง Linux จากเครื่อง Windows ของฉันกับความล่าช้าน้อยที่สุด ตัวเลือกของฉันดูเหมือนจะเป็น: VNC การจำลองเสมือนของผู้เยี่ยมชม Linux บนโฮสต์ Windows ในพื้นที่ของฉันโดยใช้ตัวอย่างเช่น Virtualbox กับ Ubuntu และจากนั้นssh -Xไปที่กล่อง Linux จากที่นี่ (นี่คือเธรดที่กล่าวถึงการกำหนดค่าสำหรับการขุดอุโมงค์อย่างรวดเร็ว ssh X ) cygwin พร้อมเซิร์ฟเวอร์ …

2
ไฟล์ dot ไม่ได้รับมาเมื่อรันคำสั่งผ่าน ssh
เมื่อฉันเรียกใช้โปรแกรมแบบโต้ตอบมันทำงานได้ดี: ssh somehost $ ~/some/path/somescript.py เมื่อฉันรันโปรแกรมผ่าน ssh โดยตรงมันไม่ทำงาน PYTHONPATHไม่ได้ตั้งค่าตัวแปรเนื่องจาก.bashrcไม่ได้มีการจัดหา ssh somehost ~/some/path/somescript.py ถ้าฉันวิ่งssh somehost 'source ~/.bashrc; ~/some/path/somescript.py'ก็ใช้งานได้ดี แต่หลังจะไม่ทำงานสำหรับคนอื่น ๆ เช่นใช้ tcsh และไม่มี~/.bashrcเลย) คืออะไรคำสั่งเพื่อเรียกใช้สิ่งที่ผ่าน SSH บนโฮสต์ที่ทำงานสำหรับเปลือกหอยทั้งหมดอื่นได้หรือไม่

3
อาร์กิวเมนต์บรรทัดคำสั่ง ssh รีโมตรับการวิเคราะห์คำได้อย่างไร
ฉันเห็นคำถามและคำตอบเกี่ยวกับการต้องหลีกเลี่ยงการขัดแย้งกับคำสั่ง ssh จากระยะไกล คำถามของฉันคือ: การแยกวิเคราะห์ครั้งที่สองเสร็จสมบูรณ์เมื่อใดและเมื่อไร ถ้าฉันเรียกใช้ต่อไปนี้: $ ssh otherhost pstree -a -p ฉันเห็นสิ่งต่อไปนี้ในผลลัพธ์: |-sshd,3736 | `-sshd,1102 | `-sshd,1109 | `-pstree,1112 -a -p กระบวนการหลักสำหรับคำสั่งระยะไกล ( pstree) คือsshdไม่ปรากฏว่ามีเปลือกใด ๆ ที่จะแยกวิเคราะห์บรรทัดคำสั่งไปยังคำสั่งระยะไกลดังนั้นมันดูเหมือนว่าจะไม่จำเป็นต้องมีการอ้างถึงหรือหนีสองครั้ง ( แต่มันก็แน่นอน) ถ้าฉันกลับไปที่นั่นก่อนและรับเชลล์ล็อกอินจากนั้นเรียกใช้pstree -a -pฉันจะเห็นสิ่งต่อไปนี้ในผลลัพธ์: ├─sshd,3736 │ └─sshd,3733 │ └─sshd,3735 │ └─bash,3737 │ └─pstree,4130 -a -p เห็นได้ชัดว่ามีbashเชลล์ที่จะทำการแยกบรรทัดคำสั่งในกรณีนั้น แต่ในกรณีที่ฉันใช้คำสั่งระยะไกลโดยตรงดูเหมือนจะไม่เป็นเปลือกดังนั้นทำไมจึงจำเป็นต้องมีการอ้างอิงสองครั้ง
11 bash  shell  ssh  process  quoting 

2
คุณจะใช้บัญชีรูทของระบบอื่นได้อย่างไร?
คุณจะใช้บัญชีรูทของระบบอื่นได้อย่างไร? สมมติว่าคุณต้องเข้าถึงระบบเป้าหมาย นี่เป็นคำถามที่ฉันถูกถามในแบบทดสอบ เห็นได้ชัดว่าใช้ง่าย ssh root@192.168.xx.xx ไม่ใช่คำตอบ ฉันต้องการทราบคำตอบ
11 ssh 

2
ใช้ Firefox ใน Ubuntu VM ผ่าน SSH เปิด Firefox ของเครื่องโฮสต์
ฉันใช้ Slackware Firefox กำลังทำงาน ฉันยังมีเครื่องเสมือนที่ใช้งาน Ubuntu 16.04 โดยใช้ VirtualBox ฉันติดตั้ง Firefox บนเครื่องเสมือนและติดตั้ง Firefox บนคอมพิวเตอร์โฮสต์ ฉันเปิดเซสชัน SSH ในเครื่องเสมือนและเรียกใช้ Firefox มันเปิดหน้าต่างใหม่ของ Firefox ในคอมพิวเตอร์โฮสต์ของฉัน ทำไมถึงทำเช่นนี้? ฉันคาดหวังว่าจะใช้งานอินสแตนซ์ของ Firefox สองอัน: อันหนึ่งบนโฮสต์คอมพิวเตอร์ของฉันและอีกอันบนเครื่องเสมือน
11 ssh  firefox 

3
เหตุใด sshd จึงไม่ใช้เทอร์มินัลเทียมหลอกเมื่ออาร์กิวเมนต์ของลูกค้า ssh ตามมาด้วยโปรแกรมแบบโต้ตอบ
วิธีปกติในการเชื่อมต่อกับเซิร์ฟเวอร์ SSH ssh username@ip_addressคือ แต่ผู้ใช้อาจต้องการเรียกใช้โปรแกรมบนเครื่องระยะไกลเท่านั้น ssh username@ip_address <program_name>ดังนั้นชื่อโปรแกรมดังต่อไปนี้หลังจากอาร์กิวเมนต์ปกติซึ่งเป็น ตัวอย่างเช่นssh username@ip_address ls. อาร์กิวเมนต์นั่นคือดียกเว้นสำหรับโปรแกรมโต้ตอบ (ที่ยังยอมรับการป้อนข้อมูลของผู้ใช้เช่นเดียวกับการส่งออก) topเช่น ผลลัพธ์คือ ไม่ได้ตั้งค่าตัวแปรสภาพแวดล้อม TERM ซึ่งหมายความว่าไม่มีเทอร์มินัล (หลอก) ติดอยู่ระหว่างโปรแกรม sshd และโปรแกรมยอดนิยม การแก้ปัญหาคือการเพิ่มการโต้แย้งที่คำสั่งทั้งตอนนี้กลายเป็น-tssh -t username@ip_address top คำถามของฉันคือทำไมไม่สามารถใช้ sshd เป็นค่าเริ่มต้นใช้เทอร์มินัลหลอกเพื่อสื่อสารกับโปรแกรมที่ไม่ต้องมีการโต้ตอบดังนั้นจึงไม่จำเป็นต้องเพิ่ม-tอาร์กิวเมนต์สำหรับโปรแกรมเชิงโต้ตอบ
11 ssh  pty 

5
ฉันจะกำหนดค่าเช่นนั้นฉันสามารถ SSH กับระบบของฉันผ่านอินเทอร์เน็ตบน IP แบบไดนามิกได้อย่างไร
โดยทั่วไปฉันต้องการที่จะสามารถทำบางสิ่งบางอย่างเช่น teamviewer โดยไม่คำนึงถึงการกำหนดค่าเครือข่ายตราบใดที่ทั้งเซิร์ฟเวอร์ ssh ของฉัน (Machine A) และไคลเอ็นต์ ssh (Machine B) มีการเข้าถึงอินเทอร์เน็ต (และเซิร์ฟเวอร์ที่สามบางเครื่อง C) ) ฉันสามารถเข้าใช้งานได้ - นี่คือเหตุผลที่ฉันต้องการย้ายเครื่อง A ไปเสียบเข้ากับพลังงานเชื่อมต่อกับเครือข่าย wifi ที่กำหนดค่าไว้ล่วงหน้าอย่างใดอย่างหนึ่งโดยอัตโนมัติ โดยไม่ต้องมีการกำหนดค่าการส่งต่อพอร์ตหรือคล้ายกันบนเครือข่ายและสามารถเข้าสู่ระบบผ่านทางอินเทอร์เน็ตจากเครื่อง B ฉันจะทำสิ่งนี้ได้อย่างไร ฉันไม่รังเกียจที่จะตั้งค่าบางอย่างบนเซิร์ฟเวอร์ที่มีที่อยู่ IP แบบคงที่เพื่อช่วยในการจับมือกัน แต่ฉันก็ไม่สนใจเซิร์ฟเวอร์ของบุคคลที่สามเช่นกันหากมีบางสิ่งอยู่แล้ว (เช่นเดียวกับที่ใช้สำหรับ Teamviewer) แก้ไขเพื่อความชัดเจน: ฉันมี 3 เครื่อง, AB และ C A เป็นราสเบอร์รี่ pi หัวขาดที่จะเปิด / ปิดในตำแหน่งสุ่มเชื่อมต่อกับเครือข่าย wifi ที่เตรียมไว้ล่วงหน้า B เป็นเครื่องที่มีจอภาพคีย์บอร์ดและอื่น ๆ ที่ฉันต้องการเชื่อมต่อ …
11 networking  ssh 

2
stderr มากกว่า ssh -t
สิ่งนี้จะส่งเอาต์พุตไปยัง STDERR แต่ไม่แพร่กระจายCtrl+ C(เช่นCtrl+ Cจะฆ่าsshแต่ไม่ใช่รีโมตsleep): $ ssh localhost 'sleep 100;echo foo ">&2"' สิ่งนี้แพร่กระจายCtrl+ C(เช่นCtrl+ Cจะฆ่าsshและห่างไกลsleep) แต่ส่ง STDERR ไปยัง STDOUT: $ ssh -tt localhost 'sleep 100;echo foo ">&2"' ฉันจะบังคับให้วินาทีส่งเอาต์พุต STDERR ไปยัง STDERR ในขณะที่ยังคงแพร่กระจายCtrl+ ได้Cอย่างไร พื้นหลัง GNU ใช้ขนาน 'SSH -tt' เพื่อเผยแพร่+Ctrl Cสิ่งนี้ทำให้สามารถฆ่างานที่กำลังรันอยู่ในระยะไกลได้ แต่ข้อมูลที่ส่งไปยัง STDERR ควรไปยัง STDERR ต่อไปเมื่อสิ้นสุดการรับ


2
จะเปลี่ยนเขตเวลาของผู้ใช้ได้อย่างไร?
ฉันรู้ว่า (เช่นใน Debian) สามารถใช้dpkg-reconfigure tzdataเพื่อเปลี่ยนเขตเวลาของระบบแต่ฉันสงสัยว่าจะเปลี่ยนเขตเวลาของผู้ใช้ได้อย่างไร (ถ้า Linux / Unix สนับสนุนแนวคิดดังกล่าว) ปกติฉันทำงานบนเซิร์ฟเวอร์จากระยะไกลผ่าน ssh และเนื่องจากเซิร์ฟเวอร์ทำงานกับ UTC ภายใน (ไฟล์, ... ) และเขตเวลาค่อนข้างตื้นฉันต้องการดูเวลาในเขตเวลาที่ฉันต้องการตามที่ฉันกำลังเชื่อมต่อ เป็นไปได้ไหม

2
จำกัด การสำรองข้อมูลโดยไม่ใช้รหัสผ่านด้วย SFTP
ฉันต้องการสำรองข้อมูลเซิร์ฟเวอร์ไปยังคอมพิวเตอร์ของฉันโดยใช้ Duplicity: duplicity /etc sftp://backup@my.dynamic.ip.address//home/backup ก่อนที่จะสามารถทำได้ฉันต้องอนุญาตการเข้าถึงรหัสผ่านโดยทำสิ่งต่อไปนี้: $ ssh-keygen $ ssh-copy-id backup@my.dynamic.ip.address $ ssh backup@my.dynamic.ip.address คำถามของฉันคือฉันจะ จำกัด คำสั่งเฉพาะการถ่ายโอน SFTP นี้ในรหัสสาธารณะที่สร้างขึ้นได้อย่างไร command="restrict to sftp",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAAA… และเนื่องจากฉันอยู่ในที่อยู่ IP แบบไดนามิกฉันจะเอาชนะปัญหา "โฮสต์ที่ขาดหายไป" ปัญหาในแต่ละครั้งที่มีการเปลี่ยนแปลง IP ของฉันได้อย่างไร

2
ทำไมการทดแทนกระบวนการ <() ไม่ทำงานกับ ssh -F
ฉันมีบางเครื่องเสมือนจรจัด เพื่อเข้าสู่พวกเขาฉันออกvagrant sshคำสั่ง ฉันต้องการเข้าสู่ระบบโดยใช้sshคำสั่งปกติ vagrant ssh-configออกผลลัพธ์เป็นไฟล์ config ที่เหมาะสม $ vagrant ssh-config Host default HostName 127.0.0.1 User vagrant Port 2201 UserKnownHostsFile /dev/null StrictHostKeyChecking no PasswordAuthentication no IdentityFile /home/cbliard/.vagrant.d/insecure_private_key IdentitiesOnly yes LogLevel FATAL เมื่อส่งออกการกำหนดค่านี้ในไฟล์และใช้กับssh -Fทุกอย่างทำงานได้ดี: $ vagrant ssh-config &gt; /tmp/config $ ssh -F /tmp/config default =&gt; logged successfully เมื่อใช้ตัวดำเนินการทดแทนกระบวนการ&lt;(cmd)เพื่อป้องกันการสร้างไฟล์กำหนดค่าชั่วคราวมันจะล้มเหลว: $ ssh -F …

6
คำสั่ง ssh ยังคงเกิดขึ้นในระบบอื่นโดยไม่คาดคิดหลังจาก ssh ถูกยกเลิก
ฉันใช้คำสั่งด้านล่างและตรวจสอบไฟล์ที่ส่งออกในระบบอื่น ๆ : ssh $ip_address 'for n in 1 2 3 4 5; do sleep 10; echo $n &gt;&gt;/tmp/count; done' หากฉันฆ่าคำสั่ง ssh โดยใช้^Cหรือเพียงแค่ฆ่าเทอร์มินัลที่ฉันเข้าสู่ระบบฉันคาดว่าคำสั่งระยะไกลจะยุติเช่นกัน สิ่งนี้ไม่ได้เกิดขึ้น: /tmp/countรับตัวเลขทั้งหมด 1-5 โดยไม่คำนึงถึงและps -ejHแสดงให้เห็นว่าเชลล์และsleepลูกของมันยังคงทำงานต่อไป นี่เป็นพฤติกรรมที่คาดหวังและมีการบันทึกไว้ที่ใดบ้างหรือไม่ ฉันจะปิดการใช้งานมันได้หรือไม่ จากการอ่านไปเรื่อย ๆ ฉันคาดว่าจะต้องเปิดใช้งานพฤติกรรมแบบนี้โดยไม่ต้องรออย่างชัดเจนไม่ใช่เพื่อให้เป็นค่าเริ่มต้น ฉันได้ดูหน้าคู่มือสำหรับ ssh และ sshd แต่ไม่เห็นสิ่งที่ชัดเจนและ Google ชี้ให้ฉันดูคำแนะนำในการเปิดใช้งานพฤติกรรมนี้ไม่ใช่เพื่อปิด ฉันใช้ Red Hat Enterprise Linux 6.2 พร้อมด้วยล็อกอินรูทและ bash shell บนทั้งสองระบบ
11 ssh  rhel  openssh  sshd 

3
วิธีการเปิดพอร์ตในขั้นตอนการบู๊ตเพื่อปลดล็อก LUKS ผ่าน SSH
ฉันมีเซิร์ฟเวอร์ที่เข้ารหัสอย่างสมบูรณ์ที่ใช้ Debian 7 และได้ตั้งค่า dropbear และ busybox เพื่อปลดล็อกคอนเทนเนอร์ LUKS ผ่าน SSH (ตามที่อธิบายไว้ในบทช่วยสอนนี้และในคำตอบ U&amp;L นี้ ) น่าเสียดายที่เมื่อใดก็ตามที่ฉันพยายามและ SSH ไปยังเซิร์ฟเวอร์ (ผ่าน LAN) เมื่อรีบูตฉันได้รับข้อผิดพลาด "การเชื่อมต่อถูกปฏิเสธ" ฉันได้ลองtelnetและnmapไปที่พอร์ตเริ่มต้น (22) และทั้งคู่บอกว่าพอร์ตถูกปิด เซิร์ฟเวอร์มีufwกฎเพื่อยอมรับปริมาณการใช้งานทั้งหมดจาก LAN: Anywhere ALLOW 192.168.1.0/24 ฉันได้พยายามเปลี่ยนพอร์ตที่ฟัง dropbear ใน/etc/defaults/dropbearแต่sshและtelnetจะยังคงปฏิเสธการเชื่อมต่อที่1 ฉันจะมั่นใจได้อย่างไรว่าพอร์ตเปิดอยู่ในขั้นตอนนั้นในกระบวนการบูตเพื่อให้ฉันสามารถเชื่อมต่อเพื่อปลดล็อกคอนเทนเนอร์ LUKS ได้ การปิดใช้งานไฟร์วอลล์ไม่สร้างความแตกต่าง: nmapแสดงพอร์ตทั้งหมดที่ยังคงปิดอยู่ อัปเดต 2/14 ฉันเพิ่มลงbreak=premountในเคอร์เนลบรรทัดและมีการกระตุ้นรอบ ๆ ใน initramfs dropbearได้เริ่มขึ้นแล้ว แต่เครือข่ายไม่ได้อยู่ที่จุดนั้น หลังจากออกจากเครือข่ายขึ้นมาและบูตต่อไปจนกว่าจะมีข้อความแจ้งให้ปลดล็อคอุปกรณ์ LUKS ณ จุดนี้เครือข่ายเป็นขึ้นและโฮสต์ได้รับมอบหมายที่อยู่ …
11 ssh  networking  luks 

2
ssh, เริ่มเชลล์เฉพาะ, และรันคำสั่งบนเครื่องรีโมต?
ฉันอยู่ในสถานการณ์ที่ผู้ใช้หลายคนกำลังแบ่งปันบัญชีผู้ใช้เดียวกันบนเครื่องระยะไกล ฉันมีไดเรกทอรี "ส่วนตัว" ที่ฉันเขียน.zshrcไฟล์ของตัวเองและฉันต้องการวิธี: เริ่มเซสชัน ssh ในเครื่องระยะไกลด้วยคำสั่งจากไฟล์ ssh config ของฉัน (เช่นControlMaster auto) เซสชั่นนี้รัน Z shell มันทำงาน.zshrcในไดเรกทอรี "ส่วนตัว" ของฉัน (ไม่ใช่ในไดเรกทอรีบ้านของผู้ใช้ที่ใช้ร่วมกัน) มันคงจะดีถ้ามีนามแฝงหรือวิธีง่าย ๆ ในการเริ่มเซสชัน ssh (นั่นคือเหตุผลที่ฉันคิดเกี่ยวกับการใช้ไฟล์ config ของ OpenSSH) แต่ฉันเปิดรับแนวคิดอื่น ๆ ! กำลังใช้ไฟล์ปรับแต่งของ OpenSSH? ฉันอ่านหน้า man 's ssh_config ของ OpenSSH ที่ฉันสามารถใช้ directive LocalCommandเพื่อระบุคำสั่งให้รันแบบโลคัลหลังจากเชื่อมต่อกับเซิร์ฟเวอร์สำเร็จ นี่ทำให้ฉันคิดว่าอาจมีวิธีบอกconfigไฟล์ว่าคำสั่งให้เรียกใช้จากระยะไกลหลังจากเชื่อมต่อกับเซิร์ฟเวอร์ แต่ดูเหมือนจะไม่มีอะไรเกิดขึ้น
11 ssh  openssh 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.