ฉันต้องการตรวจสอบ / อัปเดตรหัสผ่านพร็อกซีเนื่องจากการเชื่อมต่อท้องถิ่นของฉันช้า ฉันตั้งค่า ssh tunnel: ssh -D 8090 user@ssh.proxy.net
เพื่อส่งต่อแพ็กเก็ตทั้งหมดไปยัง localhost ของฉัน: 8090
ฉันจะตั้งค่าการโค่นล้มเพื่อใช้สิ่งนี้ได้อย่างไร
ฉันต้องการตรวจสอบ / อัปเดตรหัสผ่านพร็อกซีเนื่องจากการเชื่อมต่อท้องถิ่นของฉันช้า ฉันตั้งค่า ssh tunnel: ssh -D 8090 user@ssh.proxy.net
เพื่อส่งต่อแพ็กเก็ตทั้งหมดไปยัง localhost ของฉัน: 8090
ฉันจะตั้งค่าการโค่นล้มเพื่อใช้สิ่งนี้ได้อย่างไร
คำตอบ:
คุณกำลังใช้ SSH เพื่อตั้งค่าเซิร์ฟเวอร์ SOCKS ในพื้นที่ที่ไปยังเซิร์ฟเวอร์ SSH ของคุณ คุณพูดถึงเหตุผลของคุณในการทำเช่นนั้นคือ "การเชื่อมต่อในท้องถิ่นช้า" แต่ฉันล้มเหลวในการดูว่าการสร้างช่องสัญญาณไปยังเซิร์ฟเวอร์ SSH จะทำให้เร็วขึ้นได้อย่างไร
อย่างไรก็ตามปัญหาของคุณคือการโค่นล้มสามารถเชื่อมต่อผ่านพร็อกซี HTTP หรือทันเนล SSH แต่ไม่มีความคิดเกี่ยวกับ SOCKS ดังนั้นคุณต้อง SOCKSify Subversion โดยการจับการเชื่อมต่อ TCP ทั้งหมดและเปลี่ยนเส้นทางไปยังพร็อกซี SOCKS
แทนที่จะต้องถอดความจากคนที่เคยทำมาก่อนฉันจะพาคุณไปอธิบายอย่างละเอียด:
หรือสรุปสั้น ๆ ส่วนใหญ่ cut'n'pasted จากหน้าของ Oliver:
Debian มีถุงเท้าสองตัวที่มีอยู่ใน sourceforge ด้วย หนึ่งที่อัพเดตล่าสุดคือ ProxyChains และค่อนข้างตรงไปตรงมาเพื่อกำหนดค่า ถุงเท้าส่วนใหญ่ทำงานในลักษณะเดียวกันดังนั้นคำแนะนำเหล่านี้ควรเป็นกรณีทั่วไปที่สมเหตุสมผล ในการกำหนดค่า ProxyChains คุณเพียงแค่ต้องแก้ไข $ (HOME) /. proxychains / proxychains.conf ให้มีเพียงบรรทัดต่อไปนี้:
DynamicChain
tcp_read_time_out 15000
tcp_connect_time_out 10000
[ProxyList]
socks5 127.0.0.1 8090
# NB: for some reason 'localhost' doesn't work in the above line
สิ่งที่คุณต้องทำคือ 'wrap' svn ใน ProxyChains
proxychains svn commit
ในตัวอย่างข้างต้นแอปพลิเคชัน svn นั้นไม่มีใครฉลาดที่ TCP เชื่อมต่อกับเซิร์ฟเวอร์การโค่นล้มถูกเปลี่ยนเส้นทางลงพร็อกซี SOCKS ของคุณ "
โพสต์ที่นี่เนื่องจากฉันพบ kludge-y น้อยลงในการทำเช่นนี้ คุณสามารถใช้Polipoเพื่อใช้ช่องสัญญาณ SSH SOCKS ผ่านพร็อกซี HTTP ได้โดยเพิ่มบรรทัดต่อไปนี้ลงในการกำหนดค่า
socksParentProxy = "localhost:8090"
socksProxyType = socks5
polipo
8123
โดยค่าเริ่มต้นฟังพอร์ต และจากนั้นใน$HOME/.subversion/servers
สร้างกลุ่มสำหรับโฮสต์โค่นล้มคุณต้องการที่จะตรวจสอบจากเช่นถ้าโค่นล้มโฮสต์พื้นที่เก็บข้อมูลของคุณ (s) มีการตั้งชื่อproj1.svn.domain.tld
, proj2.svn.domain.tld
ฯลฯ แล้วเพิ่มต่อไปนี้เพื่อ[groups]
แสดง:
[groups]
domain = *.svn.domain.tld
และสุดท้ายระบุการกำหนดค่าพร็อกซีสำหรับกลุ่มโฮสต์ที่คุณเพิ่งเพิ่มโดยเพิ่มบล็อกสำหรับกลุ่ม:
[domain]
http-proxy-host=localhost
http-proxy-port=8123
หลังจากนี้คุณควรจะสามารถทำงานกับที่เก็บได้ตามปกติเนื่องจากคุณเคยทำงานโดยไม่ต้องใช้อุโมงค์ SSH
HTH
ฉันไม่รู้เกี่ยวกับการสร้างอุโมงค์ด้วยssh -D
แต่ใช้สิ่งที่ชอบ
ssh -L8090:svn.server.com:22 user@other.server.com
จากนั้นคุณสามารถทำช่องสัญญาณได้โดยการเพิ่มโปรโตคอลใหม่ลงในการโค่นล้มด้วยพอร์ตเฉพาะที่ช่องสัญญาณเปิดอยู่ ดังนั้นใน ~ / .svversion / config เพิ่มบรรทัดเช่น
pssh = ssh -p8090
ใน[tunnels]
ส่วนและจากนั้นแทนที่จะใช้ svn + ssh: //user@original.com ให้ใช้ svn + pssh: // user @ localhost
หากคุณมีสำเนาการทำงานที่มีอยู่คุณสามารถใช้
svn switch --relocate svn+ssh://user@original.com svn+pssh://user@localhost
เพื่อสลับที่อยู่สำเนาการทำงานเชื่อมโยงกับโดยไม่ต้องทำการชำระเงินใหม่
svn co svn+ssh://code.somewhere.com/prj prj
แล้วการเข้าสู่prj/
และทำงานsvn switch --relocate svn+ssh://code.somewhere.com svn+pssh://localhost/
จะอัปเดต wc เพื่อดูราวกับว่ามันได้รับผ่านsvn co svn+pssh://localhost/prj prj
ดูที่ไฟล์กำหนดค่าเริ่มต้นที่ ~ / .subversion / มีตัวอย่างที่มีประโยชน์มากมายแสดงความคิดเห็น พร็อกซีจะถูกตั้งค่าใน ~ / .subversion / เซิร์ฟเวอร์
มีโอกาสเมื่อมันจำเป็นต้องมีของ Windows PC ที่จะได้รับ SVN + SSH เชื่อมต่อกับพื้นที่เก็บข้อมูล SVN ผ่านถุงเท้าพร็อกซีเซิร์ฟเวอร์ ปัญหานี้สามารถแก้ไขได้ด้วย Putty ซึ่งมีฟังก์ชัน SSH และสามารถทำงานกับพร็อกซีชนิดต่าง ๆ โซลูชันที่เสนอไม่ต้องการการส่งต่อพอร์ตในเครื่อง
คืออะไร - SVN จะใช้ชื่อโปรโตคอลเพื่อตรวจสอบว่าควรใช้ plink.exe สำหรับการเชื่อมต่อและโปรแกรมจะใช้ชื่อเซสชันsocks_proxyเพื่อระบุว่ามีพร็อกซีอยู่หรือไม่ โปรดจำไว้ว่าควรป้อนPATH_TO_PLINKด้วยเครื่องหมายทับไม่ใช่ด้วยเครื่องหมายทับขวา ตัวอย่างสำหรับโอกาสเมื่อ plink.exe จะอยู่ในโฟลเดอร์ C: \ Program Files \ Putty: SSH = C: / Program Files / สีโป๊ว / plink.exe -load socks_proxy
คุณอาจจะให้tsocksลอง ด้วย tsocks คุณกำหนดค่าให้ใช้การตั้งค่าพร็อกซี SOCKS SSH แล้วเรียกใช้ svn ดังนี้:
tsocks svn co {etc...}