{ "info": { "author": "fqiyou", "author_email": "yc.fqiyou@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "======\nso\n======\n\nThis is a SSH login tool\n\nInstallation\n============\n\n::\n\n pip install --upgrade 0lever-so\n or\n pip install --upgrade 0lever-so -i https://pypi.org/simple/\n\n\nUsage\n=====\n\n::\n\n # \u521d\u59cb\u5316\u914d\u7f6e\u6587\u4ef6,\u5347\u7ea7\u65e0\u9700\u521d\u59cb\u5316,chmod 400 ~/.so/keys/*\n \u279c ~ so_install\n \u279c ~ cd .so\n \u279c .so tree\n .\n \u251c\u2500\u2500 keys\n \u2502\u00a0\u00a0 \u2514\u2500\u2500 demo.pem\n \u2514\u2500\u2500 password.yaml\n\n 1 directory, 2 files\n \u279c .so\n\n\n::\n\n # \u914d\u7f6e\u6587\u4ef6\n ssh:\n - id: 1\n name: demo1\n user: fqiyou\n password: xxx\n host: 1.1.1.1\n port: 20755\n - id: 2\n name: demo2\n user: fqiyou\n password: xxx\n host: 1.1.1.1\n port: 39986\n - id: 3\n name: demo3\n user: root\n password: demo.pem\n host: 1.1.1.1\n port: 22\n\n\nOther-shell\n\n=====\n\n::\n\n #!/usr/bin/expect\n set USER \"xxx\"\n set PASSWD \"xxx\"\n set timeout 10\n\n trap {\n set rows [stty rows]\n set cols [stty columns]\n stty rows $rows columns $cols < $spawn_out(slave,name)\n } WINCH\n spawn su - $USER\n expect \"Password: \"\n send \"$PASSWD\\n\"\n interact\n\n::\n\n #!/usr/bin/expect -f\n set HOST [lindex $argv 0]\n set USER [lindex $argv 1]\n set PASSWD [lindex $argv 2]\n set PORT [lindex $argv 3]\n set timeout 10\n\n trap {\n set rows [stty rows]\n set cols [stty columns]\n stty rows $rows columns $cols < $spawn_out(slave,name)\n } WINCH\n\n spawn ssh $USER@HOST -p $PORT\n expect {\n \"*yes/no\" {send \"yes\\r\"; exp_continue}\n \"*password:\" {send \"$PASSWD\\r\"}\n }\n interact\n ```", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/0lever/so", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "0lever-so", "package_url": "https://pypi.org/project/0lever-so/", "platform": "", "project_url": "https://pypi.org/project/0lever-so/", "project_urls": { "Homepage": "https://github.com/0lever/so" }, "release_url": "https://pypi.org/project/0lever-so/1.2.0/", "requires_dist": null, "requires_python": "", "summary": "\u670d\u52a1\u5668\u767b\u5f55\u5de5\u5177", "version": "1.2.0" }, "last_serial": 5489726, "releases": { "1.0.8": [ { "comment_text": "", "digests": { "md5": "2c87e9b354b46fd2484e8d7814f51650", "sha256": "9151d51d191a66d5808269245afb8fa0c09313996d382eb320d64c53f079acb8" }, "downloads": -1, "filename": "0lever_so-1.0.8-py2-none-any.whl", "has_sig": false, "md5_digest": "2c87e9b354b46fd2484e8d7814f51650", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 5388, "upload_time": "2019-04-30T12:10:12", "url": "https://files.pythonhosted.org/packages/78/62/2d4e6938f108aad2cf13a5b4900e371a041446402cbe8167e1900f6d1716/0lever_so-1.0.8-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "abb928e78d0a7b6d4d9b54334a26a6a6", "sha256": "4b36e040be49fe7ddc7ed9a5620d35525f4eebaef9113b787d8ac77c8b2a6b27" }, "downloads": -1, "filename": "0lever_so-1.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "abb928e78d0a7b6d4d9b54334a26a6a6", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 5387, "upload_time": "2019-04-30T12:10:03", "url": "https://files.pythonhosted.org/packages/0c/a7/0bb4c480f4111c80400139261abef84fa8e178b03baf0e2ae21410b4ddac/0lever_so-1.0.8-py3-none-any.whl" } ], "1.0.9": [ { "comment_text": "", "digests": { "md5": "122256933adad671cf0eb8726e89cff4", "sha256": "abd147124d326cceb24b42eb88586ddbfbff7ff69a82380282a855a1ac30eca4" }, "downloads": -1, "filename": "0lever_so-1.0.9-py2-none-any.whl", "has_sig": false, "md5_digest": "122256933adad671cf0eb8726e89cff4", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 4859, "upload_time": "2019-04-30T12:55:06", "url": "https://files.pythonhosted.org/packages/fd/ee/207c1511984df8cb7bb44b2de96c72b954618fe697c187eb4ef6fae1c7ad/0lever_so-1.0.9-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "003934a4b0a2a6e3ea3fa50a6b757cc5", "sha256": "f56846a01fb8e826e82a0a8e0d0ae5feec8da3f56f2f5e2069e340b25d49945a" }, "downloads": -1, "filename": "0lever_so-1.0.9-py3-none-any.whl", "has_sig": false, "md5_digest": "003934a4b0a2a6e3ea3fa50a6b757cc5", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 4861, "upload_time": "2019-04-30T12:55:11", "url": "https://files.pythonhosted.org/packages/70/ec/625463a29987be8d2c8d8d00951e66d975afb9b673b4da023f5362964096/0lever_so-1.0.9-py3-none-any.whl" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "9c822222372a523b8e33197ae73ac822", "sha256": "202c1db424ac7ef180a442f37c7336d99678f1481de2f443614c558b03b5ed18" }, "downloads": -1, "filename": "0lever_so-1.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "9c822222372a523b8e33197ae73ac822", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 4828, "upload_time": "2019-05-01T17:24:16", "url": "https://files.pythonhosted.org/packages/39/04/27b147c0d0ce31e0163d6adc6e52f64733a393ec35407d502a8e84e377fe/0lever_so-1.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e015084879f76797eac6b47688eac29a", "sha256": "06851a36f3853530971b6c21b3db38360d72f6493738ad74351ce9fbaa97e8d6" }, "downloads": -1, "filename": "0lever_so-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e015084879f76797eac6b47688eac29a", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 4828, "upload_time": "2019-05-01T17:24:12", "url": "https://files.pythonhosted.org/packages/eb/fe/3832155e33dc6ff60586a6552f21eaf3214fff816ac2cae5deffae730ef2/0lever_so-1.1.0-py3-none-any.whl" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "f08b4c47a241be283d1d68c5aba5086d", "sha256": "ca2347e28940daf1cd780f767a4b4bc86ba2f1ac79194552221b98cc8425d25a" }, "downloads": -1, "filename": "0lever_so-1.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "f08b4c47a241be283d1d68c5aba5086d", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 5486, "upload_time": "2019-05-01T19:19:31", "url": "https://files.pythonhosted.org/packages/d1/bb/1f526e72697d8ccd77c7f513ba7d1b23e45642a0ed2bb2dd49f875310c13/0lever_so-1.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9b6c7780ba70dd0905b7c1c9db9b753b", "sha256": "2386ed3c8da48edf47bb884bc15d6b72666e2e9232d1b3b003852371aa4fe622" }, "downloads": -1, "filename": "0lever_so-1.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "9b6c7780ba70dd0905b7c1c9db9b753b", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 5486, "upload_time": "2019-05-01T19:19:27", "url": "https://files.pythonhosted.org/packages/c9/3d/947b2c7b6b18b94c524384463ba255db77e36756c800406f453eac69e5f4/0lever_so-1.1.1-py3-none-any.whl" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "11873c7d92df22f0c561933c90172a97", "sha256": "a5a0afbb41a24674259390bcdbf92a6bcd69314aa299de693fa97aa3f62b4fab" }, "downloads": -1, "filename": "0lever_so-1.1.2-py2-none-any.whl", "has_sig": false, "md5_digest": "11873c7d92df22f0c561933c90172a97", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 5495, "upload_time": "2019-05-01T19:43:20", "url": "https://files.pythonhosted.org/packages/50/71/49ed67c436959dbf2d9acd36369932d8e5383a407cd1cb40b333707744b7/0lever_so-1.1.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8b9a932dcf47dce894dd3268529cb8ad", "sha256": "43c51847b0a8b690203bf8658616e5b10cbf127865199f5def73f967708ef2cf" }, "downloads": -1, "filename": "0lever_so-1.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "8b9a932dcf47dce894dd3268529cb8ad", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 5495, "upload_time": "2019-05-01T19:43:17", "url": "https://files.pythonhosted.org/packages/27/ee/23aee13ec331d77b4f7e4a14546ff0030a88c5f90c1ec5b1e4ed5545d426/0lever_so-1.1.2-py3-none-any.whl" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "a27f28e787460564ab6a959dd8f10989", "sha256": "475e9dc19597e247b510d62bf9e11a564a03678129095ae92c97c3ff4e1ba932" }, "downloads": -1, "filename": "0lever_so-1.1.3-py2-none-any.whl", "has_sig": false, "md5_digest": "a27f28e787460564ab6a959dd8f10989", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 5685, "upload_time": "2019-07-02T05:21:16", "url": "https://files.pythonhosted.org/packages/78/21/a60c322d212bdf67b0fceabd48873040a1908b6ff56ac6047ac0f61dd502/0lever_so-1.1.3-py2-none-any.whl" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "c4f87f5b63da1e28dac174e12167399d", "sha256": "45fd5de96b0d8a3e83e160835f72f6233ca657fa627f0c87b61cc15f6f0f845a" }, "downloads": -1, "filename": "0lever_so-1.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "c4f87f5b63da1e28dac174e12167399d", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 5672, "upload_time": "2019-07-05T06:10:35", "url": "https://files.pythonhosted.org/packages/ec/75/e1d501829ca2ceb2c678fff9ff37182da5c860d16d0702f4d82a8acf7f31/0lever_so-1.2.0-py2-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c4f87f5b63da1e28dac174e12167399d", "sha256": "45fd5de96b0d8a3e83e160835f72f6233ca657fa627f0c87b61cc15f6f0f845a" }, "downloads": -1, "filename": "0lever_so-1.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "c4f87f5b63da1e28dac174e12167399d", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 5672, "upload_time": "2019-07-05T06:10:35", "url": "https://files.pythonhosted.org/packages/ec/75/e1d501829ca2ceb2c678fff9ff37182da5c860d16d0702f4d82a8acf7f31/0lever_so-1.2.0-py2-none-any.whl" } ] }